请输入您要查询的百科知识:

 

词条 ToonTalk
释义

  1. References

  2. External links

{{Infobox programming language
| name = ToonTalk
| logo =  
| paradigm = concurrent constraint logic
| designer = Ken Kahn
| developer = Ken Kahn
| latest release version = 3.0
| latest release date = {2009}
| typing =
| implementations = ToonTalk IDE and [https://toontalk.github.io/ToonTalk/ ToonTalk Reborn for the Web]
| dialects = Desktop ToonTalk and ToonTalk Reborn for the Web
| platform = Desktop is Microsoft Windows and ToonTalk Reborn is HTML5
| license = Versions 1.0 and 2.0 had commercial licenses from several different publishers worldwide, but version 3.0 is now free. ToonTalk Reborn is BSD 3.0
| website = ToonTalk IDE and language (Animated Programs) and [https://github.com/ToonTalk/ToonTalk/wiki ToonTalk Reborn for the Web]
| year = 1995
| latest test version =
| latest test date =
| turing-complete = Yes
| versions = Desktop 1.0, 2.0, 3.0. Continuous release of ToonTalk Reborn for the Web
| influenced_by = Janus; Actor model
| file_ext = .tt for Desktop ToonTalk
}}

ToonTalk is a computer programming system intended to be programmed by children. The "Toon" part stands for cartoon. The system's presentation is in the form of animated characters, including robots that can be trained by example. It is one of the few successful implementations outside academia of the concurrent constraint logic programming paradigm.

It was created by Kenneth M. Kahn in 1995,[1] and implemented as part of the ToonTalk IDE,[2] a software package distributed worldwide between 1996 and 2009. Since 2009, its specification is scholarly published[3] and its implementation is freely available.

Beginning 2014 a JavaScript HTML5 version of ToonTalk called [https://github.com/ToonTalk/ToonTalk/wiki ToonTalk Reborn for the Web][4][5][6] has been available. It runs on any modern web browser and differs from the desktop version of ToonTalk in a few ways. ToonTalk programs can run on any DOM element and various browser capabilities (audio, video, style sheets, speech input and output, and browser events) are available to ToonTalk programs. Web services such as Google Drive are integrated. ToonTalk Reborn is free and open source.

Beyond its life as a commercial product, ToonTalk evolved via significant academic use in various research projects, notably at the London Knowledge Lab and the Institute of Education - projects Playground and WebLabs, which involved research partners from Cambridge (Logotron), Portugal (Cnotinfor and the University of Lisbon), Sweden (Royal Institute of Technology), Slovakia (Comenius University), Bulgaria (Sofia University), Cyprus (University of Cyprus), and Italy (Institute for Educational Technology of the Consiglio Nazionale delle Ricerche). It was also source of academic interest in Sweden, where Mikael Kindborg proposed a static representation of ToonTalk programs[7] and in Portugal, where Leonel Morgado studied its potential to enable computer programming by preliterate children.[8]

ToonTalk was influenced by the Janus computer programming language and the Actor model. The main communication abstraction in ToonTalk is the bird/nest pair. When you (the programmer or a robot) give a thing to a bird, she flies to her nest and puts the thing in it, then returns. If one or more things already occupy the nest, the bird puts the new one underneath the others.

A ToonTalk program is a sequence of rules, where each rule has a head and a tail. The head is a pattern that can be matched against the argument, which must be a tuple. In ToonTalk's presentation, a rule appears as a robot, a program as a team of robots, and a tuple as a box that can have any number of holes or compartments in which things may be placed. The alphabet of things includes number pads, text pads, other boxes, robot teams, birds, nests, and things from some other categories. A process consists of a box with a team of robots working on it. If none of the patterns matches the box, the process suspends. Otherwise, the first rule that matches, fires. The end of the tail of the rule can either destroy the process, or continue it with the same team. In case the pattern calls for something other than an empty nest where an empty nest is present, the process suspends until some bird should place something on the nest (usually as a result of the actions of other processes). A nest with something on it matches the pattern as though the nest were not there, just the (top) something. The actions in the tail also manipulate the something rather than the whole nest. Consequently, a nest can be used to program a future.

ToonTalk can be given an imperative reading or a declarative reading. If we ignore certain constructs designed to facilitate I/O, we can see ToonTalk as not having any shared access to mutable memory. The bird/nest mechanism resembles the communication in the Actor model, but with the additional power to be able to pass nests around and for a process to hold more than one nest (which is also true in Janus). A difference between communication in the Actor model and in ToonTalk is that ToonTalk preserves the order of the messages; however, ToonTalk can also provide an indeterministic merge of message streams.

References

1. ^{{cite conference| url = http://www.toontalk.com/Papers/cgdc.pdf| title = Metaphor Design - Case Study of An Animated Programming Environment| first = Ken| last = Kahn| author = | authorlink =| coauthors =| date = 22–25 April 1995| conference = Computer Game Developers Conference| conferenceurl =| editor =| others =| volume =| edition =| booktitle = Computer Game Developers' Conference (CGDC) Proceedings, 1995, 9th Annual World Famous| publisher = Computer Game Developers Conference| archiveurl = | archivedate =| location =| pages = 241| format =| id =| isbn =| bibcode =| oclc =| doi =| accessdate =| quote =| ref =| separator =| postscript =| language =| page =| at =|trans-title=}}
2. ^{{cite journal| last1 = Kahn| first1 = Ken| authorlink1 = | authorlink2 =| editor-last =| editor-first =| editor-link =| year = 1996| month = | title = ToonTalk™—An Animated Programming Environment for Children| trans_title = | journal = Journal of Visual Languages and Programming| volume = 7| issue = 2| series = | pages = 197–217| location = | publisher = | language = | format =| id =| isbn =| issn = 1045-926X| oclc = | pmid = | pmc = | bibcode = | doi = 10.1006/jvlc.1996.0011| accessdate = | url = http://www.toontalk.com/Papers/jvlc96.pdf| archiveurl = | archivedate = | laysource = | laysummary =| laydate = | quote = | ref = | separator = }}
3. ^{{cite journal| last1 = Morgado| first1 = Leonel| authorlink1 = | last2 = Kahn| first2 = Ken| authorlink2 =| editor-last =| editor-first =| editor-link =| year = 2008| month = | title = Towards a specification of the ToonTalk language| trans_title = | journal = Journal of Visual Languages and Programming| volume = 19| issue = 5| series = | pages = 574–597| location = | publisher = | language = | format =| id =| isbn =| issn = 1045-926X| oclc = | pmid = | pmc = | bibcode = | doi = 10.1016/j.jvlc.2007.10.002| accessdate = | url = http://www.toontalk.com/Papers/jvlc96.pdf| archiveurl = | archivedate = | laysource = | laysummary =| laydate = | quote = | ref = | separator = }}
4. ^{{Cite journal|last=Kahn|first=Ken|year=2014|title=TOONTALK REBORN Re-implementing and re-conceptualising ToonTalk for the Web|url=http://constructionism2014.ifs.tuwien.ac.at/papers/4.3_4-8296.pdf|journal=Proceedings of the Constructionism 2014 Conference|volume=|pages=|via=}}
5. ^{{Cite book|title=Integrating programming languages with web browsers|last=Kahn|first=Ken|publisher=Suksapattana Foundation|year=2016|isbn=978-616-92726-0-1|location=http://cmu.us11.list-manage.com/track/click?u=fa4a7ca1f97066875abea84d1&id=f9def33e7a&e=4693519f32|pages=141–149|quote=|via=}}
6. ^{{Cite book|last=Kahn|first=Ken|date=2016-01-01|title=A Demonstration of ToonTalk Where Children Build Programs by Demonstration in a Game World|journal=Proceedings of the 15th International Conference on Interaction Design and Children|series=IDC '16|location=New York, NY, USA|publisher=ACM|pages=676–679|doi=10.1145/2930674.2938611|isbn=9781450343138}}
7. ^{{cite conference| url = http://www.ida.liu.se/~mikki/comics/KindborgToonTalkPorto001123.doc| title = Representing ToonTalk programs as comic strips| first = Kindborg| last = Mikael| author = | authorlink =| coauthors =| date = | month = | year = 2001| conference = Playground International Seminar| conferenceurl =| editor =| others =| volume =| edition =| booktitle = | publisher = | archiveurl = | archivedate =| location = Casa de Vilar, Porto, Portugal| pages = | format =| id =| isbn =| bibcode =| oclc =| doi =| accessdate =| quote =| ref =| separator =| postscript =| language =| page =| at =|trans-title=}}
8. ^{{Cite thesis |degree= doctoral |chapter= |title= Framework for Computer Programming in Preschool and Kindergarten |url= http://home.utad.pt/~leonelm/papers/tese/teseleonelmorgado.pdf |author= |last= Morgado|first=Leonel |year=2005 |publisher=Universidade de Trás-os-Montes e Alto Douro, Vila Real, Portugal |accessdate= |docket= |oclc= }}

External links

{{wikibooks|Software Engineers Handbook:Language Dictionary:ToonTalk}}
  • Main list of papers
  • Main web site

6 : Educational programming languages|Programming games|Logic programming languages|Visual programming languages|Software for children|Pedagogic integrated development environments

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/10 12:17:21