Logo es un lenguaje de propósito general, ampliamente conocido por su uso de gráficos de tortuga , en los que los comandos de movimiento y dibujo producían gráficos de líneas o vectoriales , ya sea en la pantalla o con un pequeño robot llamado tortuga . El lenguaje fue concebido para enseñar conceptos de programación relacionados con Lisp y solo más tarde para permitir lo que Papert llamó " razonamiento sintónico corporal ", donde los estudiantes podían comprender, predecir y razonar sobre el movimiento de la tortuga imaginando lo que harían si fueran la tortuga. Existen diferencias sustanciales entre los muchos dialectos de Logo, y la situación es confusa por la aparición regular de programas de gráficos de tortuga que se llaman Logo.
Logo es una adaptación multiparadigma y dialecto de Lisp, un lenguaje de programación funcional . [3] No existe un Logo estándar, pero UCBLogo tiene las mejores facilidades [ ¿según quién? ] para manejar listas, archivos, E/S y recursión en scripts, y puede usarse para enseñar todos los conceptos de informática, como lo hizo el profesor de UC Berkeley Brian Harvey en su trilogía Computer Science Logo Style . [4]
Logo suele ser un lenguaje interpretado , aunque se han desarrollado dialectos compilados de Logo (como Lhogho y Liogo). Logo no distingue entre mayúsculas y minúsculas, pero conserva las mayúsculas y minúsculas utilizadas para fines de formato.
Historia
Logo fue creado en 1967 en Bolt, Beranek and Newman (BBN), una firma de investigación de Cambridge, Massachusetts , por Wally Feurzeig , Cynthia Solomon y Seymour Papert . [5] Sus raíces intelectuales están en la inteligencia artificial , la lógica matemática y la psicología del desarrollo . Durante los primeros cuatro años de Logo, el trabajo de investigación, desarrollo y enseñanza se realizó en BBN. La primera implementación de Logo, llamada Ghost, se escribió en LISP en un PDP-1 . El objetivo era crear una tierra matemática donde los niños pudieran jugar con palabras y oraciones. [6] Siguiendo el modelo de LISP, los objetivos de diseño de Logo incluían potencia accesible [ aclaración necesaria ] y mensajes de error informativos. El uso de tortugas virtuales permitió una retroalimentación visual inmediata y la depuración de la programación gráfica.
El primer robot tortuga de Logo en funcionamiento se creó en 1969. Una tortuga de exhibición precedió a la tortuga de piso física. El Logo moderno no ha cambiado mucho con respecto a los conceptos básicos anteriores a la primera tortuga. La primera tortuga era un robot vagabundo atado por el piso, no controlado por radio ni inalámbrico . En BBN, Paul Wexelblat desarrolló una tortuga llamada Irving que tenía sensores táctiles y podía moverse hacia adelante, hacia atrás, rotar y hacer sonar su campana. Los primeros usuarios escolares de Logo durante un año fueron en 1968-69 en Muzzey Jr. High en Lexington, Massachusetts . Las tortugas virtuales y físicas fueron utilizadas por primera vez por estudiantes de quinto grado en la Bridge School en la misma ciudad en 1970-71.
Tortuga y gráficos
La característica más conocida de Logo es la tortuga (derivada originalmente de un robot del mismo nombre ), [5] un " cursor " en pantalla que muestra la salida de los comandos de movimiento y un pequeño lápiz retráctil, que juntos producen gráficos de líneas. Tradicionalmente se ha mostrado como un triángulo o un icono de tortuga (aunque puede representarse con cualquier icono). Los gráficos de tortuga fueron añadidos al lenguaje Logo por Seymour Papert a finales de los años 1960 para apoyar la versión de Papert del robot tortuga, un robot simple controlado desde la estación de trabajo del usuario que está diseñado para llevar a cabo las funciones de dibujo que se le asignan utilizando un pequeño lápiz retráctil colocado en el cuerpo del robot o adherido a él.
En la práctica, el uso de la geometría de la tortuga en lugar de un modelo más tradicional imita la lógica de movimiento real del robot tortuga. La tortuga se mueve con comandos relativos a su propia posición, LEFT 90 significa girar 90 grados hacia la izquierda. Algunas implementaciones de Logo, en particular las que permiten el uso de concurrencia y múltiples tortugas, admiten la detección de colisiones y permiten al usuario redefinir la apariencia del cursor de la tortuga, lo que esencialmente permite que las tortugas de Logo funcionen como sprites .
La geometría de tortuga también se utiliza a veces en entornos distintos de Logo como alternativa a un sistema gráfico estrictamente orientado a las coordenadas. Por ejemplo, la idea de los gráficos de tortuga también es útil en el sistema Lindenmayer para generar fractales .
Implementaciones
Algunos derivados modernos de Logo permiten que miles de tortugas se muevan de forma independiente. Existen dos implementaciones populares: StarLogo del Instituto Tecnológico de Massachusetts y NetLogo del Centro para el Aprendizaje Conectado (CCL) de la Universidad Northwestern . Permiten explorar fenómenos emergentes y vienen con muchos experimentos en estudios sociales, biología, física y otras áreas. NetLogo se usa ampliamente en la simulación basada en agentes en las ciencias biológicas y sociales.
Aunque no existe un estándar consensuado, existe un amplio consenso sobre los aspectos centrales del lenguaje. En marzo de 2020, se contabilizaron 308 implementaciones y dialectos de Logo, cada uno con sus propias fortalezas. [8] La mayoría de esas 308 ya no se utilizan ampliamente, pero muchas aún están en desarrollo. Las implementaciones comerciales ampliamente utilizadas en las escuelas incluyen MicroWorlds Logo e Imagine Logo .
Las implementaciones heredadas y actuales incluyen:
Lanzado por primera vez en la década de 1980
Apple Logo para Apple II Plus y Apple Logo Writer para Apple IIe , desarrollados por Logo Computer Systems, Inc. (LCSI), fueron las primeras implementaciones de Logo más utilizadas y prevalecientes que alcanzaron su apogeo a principios y mediados de la década de 1980.
Aquarius LOGO fue lanzado en 1982 en cartucho por Mattel para la computadora doméstica Aquarius .
Color Logo fue lanzado en 1983 en cartucho (26-2722) y disco (26-2721) por Tandy para la computadora color TRS-80 .
Commodore Logo fue lanzado, con el subtítulo "Un lenguaje para aprender", por Commodore International . Se basó en MIT Logo y fue mejorado por Terrapin, Inc. La versión Commodore 64 (C64105) fue lanzada en disquete en 1983; la versión Plus/4 (T263001) fue lanzada en cartucho en 1984. [9] [10]
ExperLogo fue lanzado en 1985 en disquete por Expertelligence Inc. para Macintosh 128K .
Hot-Logo fue lanzado a mediados de la década de 1980 por EPCOM para las computadoras MSX de 8 bits con su propio conjunto de comandos en portugués brasileño.
Sprite Logo, también desarrollado por Logo Computer Systems Inc., contaba con diez tortugas que podían ejecutarse como procesos independientes. Se ejecutaba en ordenadores Apple II, con la ayuda de una tarjeta Sprite insertada en una de las ranuras del ordenador.
IBM comercializó su propia versión de Logo (P/N 6024076), desarrollada conjuntamente por Logo Computer Systems, Inc. (LCSI), para su entonces nueva IBM PC.
ObjectLOGO es una variante de Logo con extensiones de programación orientada a objetos y alcance léxico. La versión 2.7 fue vendida por Digitool, Inc. [11] Ya no se desarrolla ni se le da soporte, y no funciona en versiones del sistema operativo Mac posteriores a la 7.5. [12]
Acornsoft Logo fue lanzado en 1985. Es una implementación comercial de Logo para las computadoras BBC Micro y Acorn Electron de 8 bits . [17] Fue desarrollado para Acorn Computers como una implementación completa de Logo. Cuenta con múltiples tortugas de pantalla y sonido de cuatro canales. Fue proporcionado en dos ROM de 16kB , con utilidades y controladores como software complementario. [18]
Lanzado por primera vez en la década de 1990
En febrero de 1990, Electron User publicó la sencilla implementación de Logo de Timothy Grantham para Acorn Electron bajo el artículo "Talking Turtle". [19]
Comenius Logo es una implementación de Logo desarrollada por la Facultad de Matemáticas y Física de la Universidad Comenius . Comenzó a desarrollarse en diciembre de 1991 y también se conoce en otros países como SuperLogo, MultiLogo y MegaLogo. [20]
Lego Logo es una versión de Logo que puede manipular bloques Lego robóticos conectados a una computadora. [21] Se implementó en Apple II y se usó en escuelas primarias estadounidenses y otras a fines de la década de 1980 y principios de la de 1990. [22] Lego Logo es un precursor de Scratch . [23]
UCBLogo , también conocido como Berkeley Logo, es una implementación multiplataforma y gratuita del estándar Logo, publicado por última vez en 2009. George Mills del MIT utilizó UCBLogo como base para MSWLogo , que es más refinado y también gratuito. Jim Muller escribió un libro, The Great Logo Adventure , que era un manual completo de Logo y que utilizaba MSWLogo como lenguaje de demostración. [24] MSWLogo ha evolucionado hasta convertirse en FMSLogo .
Imagine Logo es el sucesor de Comenius Logo, implementado en 2000. [25] La versión en inglés fue lanzada por Logotron Ltd. en 2001. [26]
LibreLogo es una extensión de algunas versiones de LibreOffice. Lanzada en 2012, está escrita en Python . Permite escribir gráficos vectoriales en Writer.
Logo3D es una versión tridimensional de Logo.
POOL es un dialecto de Logo con extensiones orientadas a objetos, implementado en 2014. Los programas POOL se compilan y ejecutan en el IDE gráfico de Microsoft Windows . Hay disponible un entorno simplificado y multiplataforma para sistemas compatibles con .NET Framework .
QLogo es una reescritura de código abierto y multiplataforma de UCBLogo con compatibilidad casi total con UCB que utiliza gráficos acelerados por hardware.
Lynx es una versión en línea de Logo desarrollada por Logo Computer Systems Inc. Puede ejecutar una gran cantidad de tortugas, admite animación, procesos paralelos, detección de color y colisiones.
LogoMor es un intérprete de logotipos 3D en línea de código abierto basado en JavaScript y p5.js. Admite dibujos 3D, animaciones, multimedia, modelos 3D y varias herramientas. También incluye un editor de código completo basado en CodeMirror
LbyM es un intérprete de Logo en línea de código abierto basado en JavaScript, creado y desarrollado activamente (a partir de 2021) para el programa Learning by Making de la Universidad Estatal de Sonoma . [27] Cuenta con programación Logo tradicional, conectividad con un microcontrolador personalizado e integración con un editor de código moderno.
Influencia
Logo fue una influencia primaria en el lenguaje de programación Smalltalk . También es la principal influencia en el entorno y lenguaje de programación educativa Etoys , que es esencialmente una variante de Logo escrita en Squeak (en sí misma una variante de Smalltalk). Logo influyó en el modelo de procedimiento/método en AgentSheets y AgentCubes para programar agentes de manera similar a la noción de una tortuga en Logo. Logo proporcionó el lenguaje subyacente para Boxer. Boxer fue desarrollado en la Universidad de California, Berkeley y el MIT y se basa en un modelo de alfabetización , lo que lo hace más fácil de usar para personas sin conocimientos técnicos. [28]
KTurtle es una variación de Logo implementada en Qt para el entorno KDE basada vagamente en Logo. [29]
Otros dos resultados de la influencia de Logo son Kojo , una variante de Scala, y Scratch , un lenguaje visual de arrastrar y soltar que se ejecuta en un navegador web.
Referencias
^ Abelson, Hal; Goodman, Nat; Rudolph, Lee (diciembre de 1974). "Manual de logotipo". Laboratorio de Inteligencia Artificial, Instituto Tecnológico de Massachusetts . hdl :1721.1/6226. Archivado desde el original el 11 de septiembre de 2016 . Consultado el 28 de agosto de 2016 .
^ Goldenberg, E. Paul (agosto de 1982). «Logo – A Cultural Glossary». Byte . pág. 218 . Consultado el 19 de octubre de 2013 .
^ ab "Logo Foundation". el.media.mit.edu . Archivado desde el original el 21 de julio de 2011 . Consultado el 7 de abril de 2011 .
^ "logothings". logothings.wikispaces.com . Archivado desde el original el 7 de diciembre de 2011.
^ Pietrocola, Giorgio (2005). "Tartapelago". Maecla .
^ "El proyecto del árbol de logotipos" (PDF) . elica.net . Archivado desde el original (PDF) el 2009-03-06 . Consultado el 2020-03-25 .
^ Brain, Jim; Zimmerman, Bo (30 de octubre de 2017). «Lista canónica de productos Commodore». Archivado desde el original el 20 de diciembre de 2017. Consultado el 3 de diciembre de 2017 .
^ "Logotipo - Detalles del software". Plus/4 World . Archivado desde el original el 2017-12-04 . Consultado el 2017-12-03 .
^ Logotipo del objeto Archivado el 30 de abril de 2008 en la página Wayback Machine del sitio web de Digitool (consultado el 4 de marzo de 2008)
^ Página de pedidos de logotipos de objetos en el sitio web de Digitool (consultado el 4 de marzo de 2008)
^ "DRI distribuye la versión de 128K de Dr. Logo" (PDF) . Micro Notes - Información técnica sobre los productos de Digital Research . Vol. 2, no. 2. Pacific Grove, CA, EE. UU.: Digital Research, Inc. Mayo de 1984. p. 4. NWS-106-002. Archivado (PDF) desde el original el 2020-02-11 . Consultado el 2020-02-11 . […] Dr. Logo apareció por primera vez en el mercado minorista en el otoño de 1983 para IBM PC y subió a la cima de la Hot List de Softsel . La versión minorista incluía SpeedStart CP/M , una versión abreviada de CP/M que se inicia automáticamente cuando se enciende el sistema. […][1]
^ "Búsqueda en el catálogo | Museo de Historia de la Computación". www.computerhistory.org .
^ "Amstrad CPC 6128 - Computadora - Historia de la computación". www.computinghistory.org.uk .
^ Radburn, Derek. "Cuatro logotipos para BBC Micro". The Micro User Education Special . The Micro User . Consultado el 20 de febrero de 2012 .
^ "Talking Turtle". Febrero de 1990. pp. 20-21. Archivado desde el original el 28 de marzo de 2017.
^ "Historia del logotipo de Comenius". 2002-12-09. Archivado desde el original el 2002-12-09 . Consultado el 2022-10-12 .
^ Resnick, Mitchel (julio de 1993). «Behavior Construction Kits». Comunicaciones de la ACM . 36 (7): 64–71. doi : 10.1145/159544.159593 . S2CID : 9263998. Consultado el 5 de enero de 2022 .
^ Bull, G.; Garofalo, J.; Hguyen, N. (2020), "Pensando en el pensamiento computacional: Orígenes del pensamiento computacional en la informática educativa", Journal of Digital Learning in Teacher Education , 36 (1): 6–18, doi :10.1080/21532974.2019.1694381, S2CID 214563715
^ Muller, Jim (noviembre de 2001). «MSWLogo, un lenguaje de programación educativo» . Consultado el 5 de enero de 2022 .
^ Andrej, Kalas; Blaho, Ivan (2000). Imagine... una nueva generación de Logo: imágenes programables. OCLC 854959806.
^ "Imagine | Nota de prensa". 17 de abril de 2001. Archivado desde el original el 17 de abril de 2001. Consultado el 12 de octubre de 2022 .
^ "Aprender haciendo ¦ Make@SSU". 14 de agosto de 2017. Consultado el 8 de enero de 2022 .
^ "Boxeador - EduTech Wiki". edutechwiki.unige.ch . Consultado el 10 de abril de 2024 .
^ "El proyecto educativo de KDE: KTurtle". edu.kde.org . Archivado desde el original el 27 de agosto de 2006.
Lectura adicional
Hacia la inteligencia artificial (1976) Primer libro de texto sobre inteligencia artificial en el que se utiliza ampliamente Logo. (Utilizando el dialecto de la Universidad de Edimburgo , AI2LOGO)
Geometría de la tortuga Abelson y diSessa
Niños diseñadores , Idit Harel Caperton, Ablex Publishing Corporation ISBN 0893917885 . Disponible en línea
Aprendiendo con logotipos , Daniel Watt, McGraw Hill, ISBN 0-07-068570-3 . Disponible en Amazon
Enseñar con logotipos: elementos básicos para el aprendizaje, Molly Watt y Daniel Watt, Addison Wesley (ahora Pearson) 1986, ISBN 0-201-08112-1 Disponible a través de Amazon
"Logotipo" (PDF) . Byte . Vol. 7, núm. 8. McGraw-Hill. 1982.( Número especial de 1982 de la revista Byte que incluye varios artículos sobre Logo).
Enlaces externos
Medios relacionados con Logo (lenguaje de programación) en Wikimedia Commons