Abstract

ToonTalk looks like a video game. This is not surprising since its design and user interface were strongly influenced by games like The Legend of Zelda: A Link to the Past and Robot Odyssey. What may be more surprising is that ToonTalk is a programming language and environment based upon ideas that have evolved from Prolog over a period of nearly twenty years. ToonTalk is a synthesis of ideas from concurrent constraint programming, video games, and programming languages for children. In the spirit of Logo [3], ToonTalk is an attempt to take the best ideas in computer science and make them accessible to children. When Logo was designed over thirty years ago, the best programming language ideas could be found in the Lisp language. The design of ToonTalk is based upon the belief that the best programming language ideas can be found in concurrent logic programming and concurrent constraint programming languages like Janus, Linear Janus, FGHC, Vulcan, DOC, AKL, and Oz [4,5,6]. These languages, in turn, borrow heavily from earlier languages like Concurrent Prolog and Parlog that in turn grew out of research on Prolog. While these languages have many desirable aspects – they are powerful, elegant, theoretically well grounded, and expressive – they are not generally considered easy to learn. If it takes substantial time and effort for computer scientists to understand one of these languages, then how can one hope to make the underlying ideas accessible to young school children? An answer lies with video games. Many of these games present a large and complex world with many kinds of objects and possible actions. And yet, children as young as 4 years old learn to master these game worlds without help. The fundamental idea underlying ToonTalk is that a game world can be created in which the objects and actions map directly onto programming language constructs. In ToonTalk, a clause becomes a robot, a term or tuple becomes a box, a number becomes a pad, and so on. The act of putting a box and a team of robots into a truck becomes a way of expressing a process spawn or procedure call. The act of dropping a number pad on another number pad becomes a way of expressing an arithmetic operation. And so on.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.