Loading ...
Sorry, an error occurred while loading the content.
 

Re: Spoken programming language

Expand Messages
  • Christopher Wright
    ... There are declarative programming languages (Prolog, METAFONT) in which the programmer describes the state of the world and can then query for more
    Message 1 of 24 , Jan 3, 2009
      Paul Kershaw wrote:
      >> I still think the following kind of distinction needs to be made:
      >> Assert(apple.color == red); // "I assert/claim/state that the apple is red."
      >> Query(apple.color == red); // "Is the apple red?"
      >> Imperative(apple.color = red); // "Make the apple red!"
      >> --gary
      >
      > I think a major obstacle to using computer language syntax for natural languages is the function of each sort of communication. Computer language is used almost exclusively to give commands to a subordinate system (i.e., the computer). If we're asking if an apple is red, it's because we want to know so that we can give an order concerning the apple (e.g., if (apple.color = red) pick(apple) -> "Is the apple red? If so, pick it!"), not because we're just curious or making idle conversation. So regardless, if we wanted to make computer language robust enough to tell stories, I agree, we'd need to build quite a bit of new structures.

      There are declarative programming languages (Prolog, METAFONT) in which
      the programmer describes the state of the world and can then query for
      more interesting aspects of the world. These would be a much better
      basis for a human language.
    • Alex Fink
      On Fri, 2 Jan 2009 21:22:05 -0800, Rebecca Bettencourt ... And Inform 7. http://en.wikipedia.org/wiki/Inform#Inform_7 Used for describing
      Message 2 of 24 , Jan 3, 2009
        On Fri, 2 Jan 2009 21:22:05 -0800, Rebecca Bettencourt <beckiergb@...>
        wrote:

        >I suggest the people interested in this thread take a look at HyperTalk:
        >http://en.wikipedia.org/wiki/HyperTalk

        And Inform 7.
        http://en.wikipedia.org/wiki/Inform#Inform_7
        Used for describing the world in interactive fiction pieces, so an extremely
        natural setting for declarative statements. (And for that matter Inform 6,
        which was for the same domain but used C-like syntax.)

        I suggest that, given that "(apple.color == red)" in our generic imperative
        language evaluates to a truth value, its best Englishing is "_whether_ the
        apple is red".

        Alex
      • Alex Fink
        ... in which connexion I should have mentioned http://www.inform-fiction.org/I7Downloads/Documents/WhitePaper.pdf containing the designer Graham Nelson s
        Message 3 of 24 , Jan 3, 2009
          On Sat, 3 Jan 2009 18:17:36 -0500, Alex Fink <000024@...> wrote:

          >And Inform 7.

          in which connexion I should have mentioned
          http://www.inform-fiction.org/I7Downloads/Documents/WhitePaper.pdf
          containing the designer Graham Nelson's accounts of his adaptation of
          natural language (section 1b) and the semantic theory which underlies it
          (section 2).

          Alex
        • Lars Finsen
          ... I think you could tell just about any story in Smalltalk. Smalltalk works by declaring objects and communicating with them. It is largely programmed in
          Message 4 of 24 , Jan 3, 2009
            Den 3. jan. 2009 kl. 22.30 skreiv Paul Kershaw:
            >
            > I think a major obstacle to using computer language syntax for
            > natural languages is the function of each sort of communication.
            > Computer language is used almost exclusively to give commands to a
            > subordinate system (i.e., the computer). If we're asking if an
            > apple is red, it's because we want to know so that we can give an
            > order concerning the apple (e.g., if (apple.color = red) pick
            > (apple) -> "Is the apple red? If so, pick it!"), not because we're
            > just curious or making idle conversation. So regardless, if we
            > wanted to make computer language robust enough to tell stories, I
            > agree, we'd need to build quite a bit of new structures.

            I think you could tell just about any story in Smalltalk. Smalltalk
            works by declaring objects and communicating with them. It is largely
            programmed in itself, and any structure you lack can be defined more
            or less easily.

            Den 3. jan. 2009 kl. 22.15 skreiv Ina van der Vegt:

            > {
            > fruit apple == new fruit();
            > apple.color = colors.red;
            > apple.shape = shapes.approximate.sphere;
            > apple.taste = tastes.sweet & tastes.sour;
            >
            > if(apple.age > apple.age.old){
            > apple.color = brown;
            > apple.taste = tastes.sweet; //No longer sour.
            > apple.nutrition = nutrition.poor;}
            > }
            >
            > The apple is a red coloured fruit that is approximately shaped like a
            > sphere. It tastes sweet and sour. If an apple's age is old, it's
            > colour becomes brown, it's solely sweet, and it's nutritionaal value
            > becomes poor.

            Smalltalk version:

            sphere:= Shape new: #sphereEquation.
            apple:= Product new: #fruit colour: #red shape: sphere approximated
            taste: #(#sweet #sour) nutritionalValue: #good.

            The apple now needs a message like this:

            age: value
            value = #old ifTrue:
            [colour:= brown. taste: #(#sweet) nutritionalValue: #poor].
            ^self

            If you send the message "age: #old" to the apple, it returns a
            modified self. If you send the "age:" message with any other value,
            it returns an unmodified self.

            Smalltalk is the mother of all object-oriented systems, and still the
            most fun to use.

            LEF
          • Gary Shannon
            ... And in TADS, also a programming language used for interactive fiction writing. http://en.wikipedia.org/wiki/TADS --gary
            Message 5 of 24 , Jan 3, 2009
              --- On Sat, 1/3/09, Alex Fink <000024@...> wrote:


              >
              > >I suggest the people interested in this thread take a
              > look at HyperTalk:
              > >http://en.wikipedia.org/wiki/HyperTalk
              >
              > And Inform 7.
              > http://en.wikipedia.org/wiki/Inform#Inform_7

              And in TADS, also a programming language used for interactive fiction writing.

              http://en.wikipedia.org/wiki/TADS

              --gary
            • Paul Kershaw
              ... While all of these are interesting, they seem to not be attempts at robust natural language replacements, but rather computer languages designed for
              Message 6 of 24 , Jan 4, 2009
                > >I suggest the people interested in this thread take a
                > > look at HyperTalk:
                > > >http://en.wikipedia.org/wiki/HyperTalk
                > >
                > > And Inform 7.
                > > http://en.wikipedia.org/wiki/Inform#Inform_7
                > And in TADS, also a programming language used for interactive fiction writing.
                > http://en.wikipedia.org/wiki/TADS
                > --gary

                While all of these are interesting, they seem to not be attempts at robust natural language replacements, but rather computer languages designed for framing natural language snippets into a narrative flow. For instance, here's an example from TADS (http://www.tads.org/t3doc/doc/tourguide/index.html):

                stoneLanding : Room 'Landing' 'the landing'
                "A pair of doors lead south from this narrow landing, from which
                a narrow flight of stone steps lead down to the north. "
                down = slStairsDown
                north asExit(down)
                south : AskConnector
                {
                promptMessage = "There are two doors you could go through to the south . "
                travelAction = GoThroughAction
                travelObjs = [leftDoor, rightDoor]
                travelObjsPhrase = 'of them'
                }
                ;


                The computer language describes the basic environment, but the portions that actually communicate with the human user are in plain English.

                Or maybe I'm drifting away from the intent of the original question?

                -- Paul
              • Erbrice
                What is lair in ... ? the text created by this langage is very poetic so what is with the beautifull girl and the dragon? by the way the code to describe color
                Message 7 of 24 , Jan 5, 2009
                  What is lair in
                  > lair:= Place new: #rural position: town position addNotTooMuch.
                  ?

                  the text created by this langage is very poetic
                  so what is with the beautifull girl and the dragon?
                  by the way the code to describe color of the girl is hard for my
                  imagination, little bit too "domaine: computer".
                  Erb
                • Philip Newton
                  ... What is dictionary ? (e.g. http://www.wordreference.com/enfr/lair ) Cheers, -- Philip Newton
                  Message 8 of 24 , Jan 6, 2009
                    On Tue, Jan 6, 2009 at 03:15, Erbrice <erbrice@...> wrote:
                    > What is lair in
                    >>
                    >> lair:= Place new: #rural position: town position addNotTooMuch.
                    >
                    > ?

                    What is "dictionary"?

                    (e.g. http://www.wordreference.com/enfr/lair )

                    Cheers,
                    --
                    Philip Newton <philip.newton@...>
                  Your message has been successfully submitted and would be delivered to recipients shortly.