H ? « »

Language peer sets for ToonTalk:
United States
United States/1995
Designed 1995
1990s languages
Fifth generation
Post-Cold War

ToonTalk(ID:5762/too003)

alternate simple view
Country: United States
Designed 1995


Visual programming environment for concurrent programming, decigned for children

People:
Related languages
Pictorial Janus ToonTalk   Evolution of
ToonTalk ToonTalk 2   Evolution of

References:
  • Kahn, Kenneth M. (1992) Kahn, Kenneth M. "Concurrent Constraint Programs to Parse and Animate Pictures of Concurrent Constraint Programs" pp943-950
          in ICOT Staff (Eds.): Fifth Generation Computer Syste (1992) ICOT Staff (Eds.): Fifth Generation Computer Systems '92: Proceedings of the International Conference on Fifth Generation Computer Systems. 1992, June 1-5, Tokyo, Japan. 1262p, IOS Press 1992
  • Kahn, Ken (1995) Kahn, Ken "Metaphor Design - Case Study of An Animated Programming Environment" Abstract Online copy
          in Proc. (1995) Proc. Computer Game Developers Conf., Apr 1995
  • Kahn, Kenneth M. (1995) Kahn, Kenneth M. "ToonTalk - An Animated Programming Environment for Children" Abstract Online copy
          in (1995) Proceedings of the National Educational Computing Conference (NECC'95).
  • Kahn, Kenneth M. (1995) Kahn, Kenneth M. "ToonTalk - Concurrent Constraint Programming for Kids" p3
          in Sterling, Leon (Ed.): Logic Programming, Proceedi (1995) Sterling, Leon (Ed.): Logic Programming, Proceedings of the Twelfth International Conference on Logic Programming, June 13-16, 1995, Tokyo, Japan. MIT Press 1995
  • Kahn, Ken (1996) Kahn, Ken "Seeing Systolic Computations in a Video Game World" Abstract
          in [Proceedings] (1996) Proceedings of the IEEE Symposium on Visual Languages (VL), 1996
  • Kahn, Kenneth M. (1996) Kahn, Kenneth M. "Drawings on Napkins, Video-Game Animation, and Other Ways to Program Computers: Programming can be as easy as child's play" pp49-59 Abstract Online copy
          in [ACM] (1996) [ACM] CACM 39(08) 1996
  • Kahn, Kenneth M. (1996) Kahn, Kenneth M. "ToonTalk - An Animated Programming Environment for Children" pp197-217
          in (1996) Journal of Visual Languages and Computing 7(2) 1996
  • Kahn, Ken (1998) Kahn, Ken "Helping Children to Learn Hard Things: Computer Programming with Familiar Objects and Actions" Abstract
          in (1998) Druin, Alison (ed) The Design of Children's Technology, Morgan Kaufmann, 1998
  • Kahn, Ken (1999) Kahn, Ken "A Computer Game to Teach Programming" Abstract Online copy
          in (1999) Proceedings of the National Educational Computing Conference June 1999
  • Kahn, Kenneth M. (1999) Kahn, Kenneth M. "From Prolog and Zelta to ToonTalk" pp67-78 Abstract Online copy
          in (1999) ICLP 1999
  • Kahn, Kenneth (2001) Kahn, Kenneth "Generalizing by Removing Detail: How Any Program Can Be Created by Working with Examples" Abstract Online copy Extract: Background
          in Lieberman, Henry (2001) Lieberman, Henry "Your Wish Is My Command: Programming By Example" Morgan Kaufmann 2001
  • Kahn, Kenneth (2001) Kahn, Kenneth "ToonTalk and Logo: Is ToonTalk a colleague, competitor, successor, sibling, or child of Logo?" Abstract Online copy
          in [Proceedings] (2001) Proceedings of the EuroLogo Conference, August 2001
    Resources
    • Papers at toontalk.com This includes revised and updated versions of the chief significant papers
    • Toontalk.com
    • "Is Logo old technology?" Digest of comp.lang.logo discussion
    • The Computer Science behind ToonTalk

      The Computer Science behind
      ToonTalk



      ToonTalk is an interpreter for a concurrent constraint
      programming language. Concurrent constraint programming is a synthesis of concurrent logic
      programming and constraint logic programming. (See, for example, href="http://mitpress.mit.edu/book-home.tcl?isbn=0262192977">Saraswat
      ). The class of
      languages for which programs are roughly interchangeable with ToonTalk programs include href="http://www.mozart-oz.org/">Oz, E-Lang,
      Janus, Flat Guarded Horn Clauses, KL1/KLIC, Flat
      Concurrent Prolog, Parlog, and Strand. The syntax of all these languages is textual while
      ToonTalk has an action-oriented video game animation syntax. The programming environment
      is completely different as well. In ToonTalk, the process of constructing, testing, and
      debugging programs closely resembles playing a video game. "From
      Prolog and Zelda to ToonTalk
      " is a paper discussing these ideas in detail.



      Pictorial Janus is a visual version of Janus in which
      pictures are used for source code and the execution of a program can be seen as an
      animation. ToonTalk differs from Pictorial Janus (and all visual programming languages) in
      that the source code is animated and concrete as opposed to the static and abstract syntax
      of visual programming languages. (See href="ftp://ftp.parc.xerox.com/pub/PictorialJanus">Pictorial Janus ftp site and href="http://jerry.c-lab.de/~wolfgang/PJ/">Paderborn University web page.)



      The computational model underlying ToonTalk supports the
      dynamic creation and termination of asynchronous processes. First-class send and receive
      capabilities provide a means for these processes to communicate and synchronize. All state
      is local to processes. There is a close relationship between concurrent object-oriented
      programming languages (including actor languages) and ToonTalk. (See ToonTalk
      papers
      .) 
      Here is an
      essay
      about how ToonTalk is concurrent and why it is difficult to extend conventional
      languages to be concurrent.



      ToonTalk includes a puzzle game that includes a
      sequence of over 60 puzzles. The connections to computer programming and computer science
      for each puzzle are described here.



      One way to understand ToonTalk is that it provides
      "concretizations" of computational abstractions. For each computational
      abstraction ToonTalk provides a tangible equivalent analog.





        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
        
          
          
        
      Computational
          Abstraction
      ToonTalk
          Concretization
      computationcity
      actor or process or
          object

      house

      methodsrobots
      method
          preconditions
      contents of thought
          bubble
      method actionsactions taught to
          robot
      tuples or messages
          or vectors
      boxes
      comparison testsscales
      actor spawningloaded trucks
      actor terminationbombs
      constantsnumbers, text, and
          pictures
      channel transmit
          capabilities
      birds
      channel receive
          capabilities
      nests
      program storagenotebooks



      Another way to understand the computational
      model of ToonTalk is to consider what you can train robots to do:




        

      ·   size="3">send a message (i.e. tell a constraint)


        

          

      by giving a box or pad to a bird,


        

        

      ·   size="3">spawn a new agent


        

          

      by dropping a box and a team of robots into a
          truck,


        

        

      ·   size="3">perform simple primitive operations (e.g. +, -, *)


        

          

      by dropping a pad on a pad,


        

        

      ·   size="3">copy an item


        

          

      by using a magician's wand,


        

        

      ·   size="3">terminate an agent


        

          

      by setting off a bomb,


        

        

      ·   size="3">change the contents of a tuple


        

          

      by taking out items and placing new ones.


        



    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder