Pseudocode in the wikipedia

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • bearophileHUGS@lycos.com

    #1

    Pseudocode in the wikipedia

    The free wikipedia is adopting a standard pseudocode:


    MShonle says something nice:
    I support the idea of wikicode. Basically I think we should present
    code in a Python-like language that doesn't carry so much baggage. For
    example, we can use English sentences (or sentence fragments) instead
    of requiring the reader to understand some obscure Python library.
    (Further, Python has the baggage that there are no block-terminators:
    i.e., no "}" or "end"s or "fi"s or "repeat"s. By adding such
    terminators, we can make it a lot less ambiguous to all readers.) In
    otherwords, we're basically right on track: removing the quirks of
    Python, and making it higher-level.

    Bearophile

  • Peter Hansen

    #2
    Re: Pseudocode in the wikipedia

    bearophileHUGS@ lycos.com wrote:[color=blue]
    > (Further, Python has the baggage that there are no block-terminators:
    > i.e., no "}" or "end"s or "fi"s or "repeat"s. By adding such
    > terminators, we can make it a lot less ambiguous to all readers.) In
    > otherwords, we're basically right on track: removing the quirks of
    > Python, and making it higher-level.[/color]

    Heh heh... good joke for April 1.

    Clearly, calling the absence of something "baggage"
    is intended to be humorous...

    -Peter

    Comment

    • Terry Reedy

      #3
      Re: Pseudocode in the wikipedia


      <bearophileHUGS @lycos.com> wrote in message
      news:1112362451 .848227.208120@ z14g2000cwz.goo glegroups.com.. .[color=blue]
      > The free wikipedia is adopting a standard pseudocode:
      > http://en.wikipedia.org/wiki/Wikiped.../Specification
      >
      > MShonle says something nice:[/color]

      Calling a feature 'baggage' is not especially nice. Neither is getting
      facts wrong.
      [color=blue]
      > I support the idea of wikicode. Basically I think we should present
      > code in a Python-like language that doesn't carry so much baggage. For
      > example, we can use English sentences (or sentence fragments) instead
      > of requiring the reader to understand some obscure Python library.
      > (Further, Python has the baggage that there are no block-terminators:[/color]

      Python does too have block terminators. They are called dedents. In doing
      so it follows standard English outline formatting and the practice of many
      algorithm pseudocode writers. (I roughly estimate around half or more.)
      Two examples I have handy: Jon Bently in Programming Pearls and Steven
      Skiena in The Algorithm Design Manual.
      [color=blue]
      > i.e., no "}" or "end"s or "fi"s or "repeat"s.[/color]

      So add #whateve-ender-you want, but leave the code executable if at all
      possible.
      [color=blue]
      > By adding such terminators, we can make it a lot less ambiguous to all
      > readers.[/color]

      Dedents are unambiguous. Be adding additional redundant terminators, one
      adds the possibility of mismatch and ambiguity.

      Terry J. Reedy



      Comment

      • James Stroud

        #4
        Re: Pseudocode in the wikipedia

        Is anybody else bothered by those stupid pascal-like ":=" assignment
        operators?

        Maybe, for the sake of adding more variety to the world, wiki should come up
        with a new assignment operator, like "==". I like that one because then it
        could really be original:

        if (bob = 4):
        bob == bob + 2

        See how nice that looks? Then we could have people who are used to python and
        c and perl complaining that "=" is for comparison and "==" is for assignment.
        Then the wikilitests would say "hey, man, part and parcel of being a
        programmer is getting assignment and comparison straight--and not making
        typos, you buffoon". But then the guys who have to program in a bunch of
        languages would point out how the wikilitests only psuedo code in wiki--so
        they would never even run the code they wrote. And then some understanding
        fellow would recommend a wiki precompiler to catch "==" inside of "if"
        statements, but then someone else would say that it would limit the
        expressiveness of wiki language:

        bob == (carol = 2):
        if bob = (bob or carol):
        bob == 4

        But no one could figure out what bob was supposed to equal anyway. And then
        someone would say something about a "Turing Machine", just to show that
        theoretically, the above code could be understood by something theoretical.

        James

        On Friday 01 April 2005 11:23 am, Terry Reedy wrote:[color=blue]
        > <bearophileHUGS @lycos.com> wrote in message
        > news:1112362451 .848227.208120@ z14g2000cwz.goo glegroups.com.. .
        >[color=green]
        > > The free wikipedia is adopting a standard pseudocode:
        > > http://en.wikipedia.org/wiki/Wikiped.../Specification[/color][/color]

        --
        James Stroud, Ph.D.
        UCLA-DOE Institute for Genomics and Proteomics
        Box 951570
        Los Angeles, CA 90095


        Comment

        • Ron_Adam

          #5
          Re: Pseudocode in the wikipedia

          On Fri, 1 Apr 2005 12:15:35 -0800, James Stroud <jstroud@mbi.uc la.edu>
          wrote:
          [color=blue]
          >Is anybody else bothered by those stupid pascal-like ":=" assignment
          >operators?
          >
          >Maybe, for the sake of adding more variety to the world, wiki should come up
          >with a new assignment operator, like "==". I like that one because then it
          >could really be original:
          >
          >if (bob = 4):
          > bob == bob + 2[/color]

          To me ":=" could mean to create a copy of an object... or should it
          be "=:" ?

          Or how about ":=)" to mean is equal and ":=(" to mean it's not.

          Then there is ";=)", to indicate 'True', and ':=O' to indicate 'False'


          Comment

          • Bill Mill

            #6
            Re: Pseudocode in the wikipedia

            On Apr 1, 2005 3:15 PM, James Stroud <jstroud@mbi.uc la.edu> wrote:[color=blue]
            > Is anybody else bothered by those stupid pascal-like ":=" assignment
            > operators?
            >[/color]

            I actually like them. I think that the = should be a comparison
            operator, not a silly ==. I think that comparisons using = are much
            clearer, especially since you often write many of them in a row,
            whereas you almost always make one assignment per line.

            I use := every day in PL/SQL, and it's one of the few positive
            syntactical features of the language.

            Peace
            Bill Mill
            bill.mill at gmail.com

            Comment

            • Gabriel Cooper

              #7
              Re: Pseudocode in the wikipedia



              Ron_Adam wrote:
              [color=blue]
              >To me ":=" could mean to create a copy of an object... or should it
              >be "=:" ?
              >
              >Or how about ":=)" to mean is equal and ":=(" to mean it's not.
              >
              >Then there is ";=)", to indicate 'True', and ':=O' to indicate 'False'
              >
              >[/color]
              Not to mention "(_ | _)" for asserts!


              Comment

              • Jeremy Bowers

                #8
                Re: Pseudocode in the wikipedia

                On Fri, 01 Apr 2005 16:02:53 -0500, Gabriel Cooper wrote:[color=blue]
                > Ron_Adam wrote:
                >[color=green]
                >>To me ":=" could mean to create a copy of an object... or should it
                >>be "=:" ?
                >>
                >>Or how about ":=)" to mean is equal and ":=(" to mean it's not.
                >>
                >>Then there is ";=)", to indicate 'True', and ':=O' to indicate 'False'
                >>
                >>[/color]
                > Not to mention "(_ | _)" for asserts![/color]

                Your ass is your identity function.

                Python 2.3.5 (#1, Mar 3 2005, 17:32:12)
                [GCC 3.4.3 (Gentoo Linux 3.4.3, ssp-3.4.3-0, pie-8.7.6.6)] on linux2
                Type "help", "copyright" , "credits" or "license" for more information.[color=blue][color=green][color=darkred]
                >>> 25[/color][/color][/color]
                25[color=blue][color=green][color=darkred]
                >>> (_ | _)[/color][/color][/color]
                25[color=blue][color=green][color=darkred]
                >>>[/color][/color][/color]

                There's clearly some interesting biometrics research to be done here,
                although there is a well-known ass-capturing attack based on readily
                commercially available machines from Xerox that might make it hard to make
                an ass-based identity system resistant to attacks.

                Comment

                • Sunnan

                  #9
                  Re: Pseudocode in the wikipedia

                  James Stroud wrote:[color=blue]
                  > bob == (carol = 2):
                  > if bob = (bob or carol):
                  > bob == 4
                  >
                  > But no one could figure out what bob was supposed to equal anyway.[/color]

                  Wouldn't bob equal the boolean result of the expression (carol = 2)?

                  Comment

                  Working...