ToonTalk es un sistema de programación informática diseñado para niños. El término "Toon" hace referencia a dibujos animados. El sistema se presenta mediante personajes animados, incluyendo robots que pueden ser entrenados con ejemplos. Es una de las pocas implementaciones exitosas, fuera del ámbito académico, del paradigma de programación lógica con restricciones concurrentes .
Fue creado por Kenneth M. Kahn en 1995, [ 1 ] e implementado como parte del IDE ToonTalk, [ 2 ] un paquete de software distribuido mundialmente entre 1996 y 2009. Desde 2009, su especificación se publica académicamente [ 3 ] y su implementación está disponible gratuitamente.
Desde 2014, está disponible una versión de ToonTalk en JavaScript HTML5 llamada ToonTalk Reborn for the Web [ 4 ] [ 5 ] [ 6 ] . Se ejecuta en cualquier navegador web moderno y se diferencia de la versión de escritorio de ToonTalk en algunos aspectos. Los programas de ToonTalk pueden ejecutarse en cualquier elemento DOM y ofrecen diversas funcionalidades del navegador (audio, vídeo, hojas de estilo, entrada y salida de voz y eventos del navegador). Además, integra servicios web como Google Drive. ToonTalk Reborn es gratuito y de código abierto.
Más allá de su vida como producto comercial, ToonTalk evolucionó a través de un uso académico significativo en varios proyectos de investigación, especialmente en el London Knowledge Lab y el Institute of Education (proyectos Playground y WebLabs), que involucraron a socios de investigación de Cambridge ( Addison Wesley Longman a través de su filial Logotron), Portugal ( Cnotinfor y la Universidad de Lisboa ), Suecia ( Real Instituto de Tecnología ), Eslovaquia ( Universidad Comenius ), Bulgaria ( Universidad de Sofía ), Chipre ( Universidad de Chipre ) e Italia (Instituto de Tecnología Educativa del Consiglio Nazionale delle Ricerche ). También fue fuente de interés académico en Suecia, donde Mikael Kindborg propuso una representación estática de los programas ToonTalk [ 7 ] , y en Portugal, donde Leonel Morgado estudió su potencial para facilitar la programación informática a niños prealfabetizados [ 8 ] .
ToonTalk se inspiró en el lenguaje de programación Janus y el modelo Actor . La principal abstracción de comunicación en ToonTalk es la pareja pájaro/nido. Cuando el programador o un robot le da un objeto a un pájaro, este vuela a su nido, coloca el objeto dentro y luego regresa. Si el nido ya está ocupado por uno o más objetos, el pájaro coloca el nuevo debajo de los demás.
Un programa ToonTalk es una secuencia de reglas, donde cada regla tiene una cabeza y una cola. La cabeza es un patrón que se puede comparar con el argumento, que debe ser una tupla. En la presentación de ToonTalk, una regla aparece como un robot, un programa como un equipo de robots y una tupla como una caja que puede tener cualquier número de agujeros o compartimentos donde se pueden colocar cosas. El alfabeto de cosas incluye teclados numéricos, teclados de texto, otras cajas, equipos de robots, pájaros, nidos y cosas de otras categorías. Un proceso consiste en una caja con un equipo de robots trabajando en ella. Si ninguno de los patrones coincide con la caja, el proceso se suspende. De lo contrario, se activa la primera regla que coincide. El final de la cola de la regla puede destruir el proceso o continuarlo con el mismo equipo. En caso de que el patrón requiera algo distinto a un nido vacío cuando hay un nido vacío presente, el proceso se suspende hasta que algún pájaro coloque algo en el nido (generalmente como resultado de las acciones de otros procesos). Un nido con algo encima coincide con el patrón como si el nido no estuviera allí, solo el algo (superior). Las acciones en la cola también manipulan el algo en lugar de todo el nido. En consecuencia, un nido puede usarse para programar un futuro .
ToonTalk puede interpretarse de forma imperativa o declarativa. Si ignoramos ciertas construcciones diseñadas para facilitar la entrada/salida, podemos considerar que ToonTalk no tiene acceso compartido a memoria mutable. El mecanismo de nido/pájaro se asemeja a la comunicación del modelo Actor, pero con la capacidad adicional de intercambiar nidos y permitir que un proceso contenga más de uno (lo cual también ocurre en Janus ). Una diferencia entre la comunicación en el modelo Actor y en ToonTalk es que ToonTalk conserva el orden de los mensajes; sin embargo, también puede proporcionar una fusión indeterminista de flujos de mensajes.
Referencias
- ↑ Kahn, Ken (22–25 de abril de 1995). "Diseño de metáforas: estudio de caso de un entorno de programación animado" (PDF) . Actas de la Conferencia de Desarrolladores de Juegos de Computadora (CGDC), 1995, 9.ª Conferencia Anual Mundial de Famosos Juegos de Computadora. Conferencia de Desarrolladores de Juegos de Computadora. pág. 241.
- ↑ Kahn, Ken (1996). "ToonTalk™—Un entorno de programación animada para niños" (PDF) . Journal of Visual Languages & Computing . 7 (2): 197– 217. doi : 10.1006/jvlc.1996.0011 . ISSN 1045-926X .
- ↑ Morgado, Leonel; Kahn, Ken (2008). "Hacia una especificación del lenguaje ToonTalk" (PDF) . Journal of Visual Languages and Programming . 19 (5): 574– 597. doi : 10.1016/j.jvlc.2007.10.002 . ISSN 1045-926X . S2CID 13442755 .
- ↑ Kahn, Ken (2014). "TOONTALK REBORN: Reimplementación y reconceptualización de ToonTalk para la Web" (PDF) . Actas de la Conferencia Constructionism 2014. Archivado del original (PDF) el 14 de marzo de 2017. Consultado el 18 de noviembre de 2016 .
- ↑ Kahn, Ken (2016). Integración de lenguajes de programación con navegadores web . Fundación Suksapattana. págs. 141–149 . ISBN 978-616-92726-0-1.
- ↑ Kahn, Ken (1 de enero de 2016). «Una demostración de ToonTalk donde los niños crean programas mediante demostración en un mundo de juego». Actas de la 15.ª Conferencia Internacional sobre Diseño de Interacción y Niños . IDC '16. Nueva York, NY, EE. UU.: ACM. págs. 676–679 . doi : 10.1145/2930674.2938611 . ISBN 9781450343138. S2CID 19973661 .
- ^ Mikaël, Kindborg (2001). Representar programas de ToonTalk como tiras cómicas . Seminario Internacional Playground. Casa de Vilar, Oporto, Portugal.
- ↑ Morgado, Leonel (2005). Marco de programación de computadoras en preescolar y jardín de infantes (tesis doctoral). Universidade de Trás-os-Montes e Alto Douro, Vila Real, Portugal. hdl : 10348/5344 . Archivado desde el original el 7 de diciembre de 2022.
Enlaces externos
- Lenguajes de programación educativa
- Juegos de programación
- Lenguajes de programación lógica
- lenguajes de programación visual
- Software para niños
- Entornos de desarrollo pedagógico integrado