Logotipo (lenguaje de programación)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 24 de abril de 2021; las comprobaciones requieren 5 ediciones .
Logo
clase de idioma lenguaje de programación instruccional , lenguaje de programación funcional y lenguaje de programación
Apareció en 1967
Autor Seymour Papert , Cynthia Solomon ,
Desarrollador Papert, Seymour , Harel, Idita y Cynthia Solomon [d] [1]
sido influenciado Ceceo
 Archivos multimedia en Wikimedia Commons

Logo ( English  Logo ) es un lenguaje de programación de alto nivel desarrollado en 1967 por Wally Förzeg , Seymour Papert y Cynthia Solomon con fines educativos para enseñar a niños de preescolar y primaria los conceptos básicos de programación ( recursividad , extensibilidad, etc..).

La primera prueba científica del éxito del uso de Logo como herramienta de aprendizaje fue demostrada por Idit Harel , un estudiante de Papert que usó Logo para enseñar programación y fracciones a niños en 1988 [2] .

Logo proporciona un entorno en el que los niños pueden desarrollar sus habilidades de razonamiento y resolución de problemas.

Información general

Una parte típica y esperada del lenguaje y entorno de programación de Logo son las herramientas de gráficos de tortugas , que, por un lado, permiten dar visualización al aprendizaje de la programación y, por otro lado, se combinan muy orgánicamente con el uso generalizado de la recursividad . .

Existen intérpretes de logotipos para varias plataformas y sistemas operativos : Windows , DOS , Linux , Mac OS , Unix , etc. También hay muchos dialectos de logotipos orientados a objetos , como Object Logo , lanzado en 1986 . En 1997, se lanzó la versión rusa: LogoMira .

Brian Harvey, autor de los tres volúmenes de Computer Science Logo Style, creó el logotipo de Berkeley . Versiones multiagente del Logo: StarLogo y NetLogo .

Las implementaciones típicas de Logo (de LCSI , por ejemplo) proporcionan al programador una biblioteca de comandos integrados, una consola de interpretación basada en texto y una "hoja de programa" en la que colocar instrucciones para registrar nuevas funciones. También se proporciona al menos una pantalla gráfica, con al menos una tortuga.

Muchas implementaciones admiten subprocesos múltiples  : al nivel de ejecución de comandos por tortugas y al nivel de la capacidad de ejecutar un comando de forma asíncrona y luego verificar si se ha completado. Es posible pasar una lista de palabras generada mediante programación al intérprete para su ejecución.

Logo es más avanzado que los lenguajes de programación de procedimientos BASIC y Fortran que se usan comúnmente para enseñar programación. Sin embargo, las implementaciones de Logo generalmente no tienen programas de archivos bien diseñados, y esto impide que se adopte ampliamente como lenguaje de programación.

En esencia, el lenguaje Logo es una adaptación del lenguaje Lisp (algunos incluso lo llaman "Lisp sin paréntesis").

Sintaxis e interpretación

En Logo, un programa es una lista de "palabras".

Como regla general, las implementaciones de Logo limitan ligeramente la lista de caracteres permitidos en una palabra, por lo que los comandos también se pueden llamar en ruso. Además, muchas implementaciones de Logo en ruso tienen comandos en ruso o sinónimos en ruso integrados para todos los comandos integrados.

Las palabras de la lista están separadas por espacios.

La palabra puede ser un comando o un literal de uno de los tres tipos: una cadena, un numérico o un literal de lista. Un comando puede devolver un valor, en cuyo caso se considera una función. Los literales devuelven su valor directamente. Un literal de cadena tiene el formato de una palabra precedida por una comilla doble. Las palabras que consisten en dígitos se interpretan como literales numéricos. Para formar una lista de palabras en el texto del programa, se colocan entre corchetes.

También hay comandos para guardar y obtener un valor por nombre, pero muchas implementaciones lo complementan con el concepto de variable, introduciendo una sintaxis de comando compacta para obtener el valor de una variable. Por tanto, para obtener el valor de una variable, suele bastar con escribir su nombre, precedido de dos puntos.

Existe una sintaxis especial para pasar un número no fijo de parámetros a algunos comandos integrados. Para hacer esto, se propone encerrar el comando y todos sus parámetros entre paréntesis, por ejemplo: (СПИСОК :A :Б :В :Г 1 2 3 4)Para los comandos de usuario, esta sintaxis no es aplicable, porque no existe una sintaxis para describir el procesamiento de los parámetros pasados ​​de esta manera.

La lista de comandos pasados ​​al intérprete se ejecuta a su vez. La siguiente palabra se interpreta como un comando del diccionario actual del sistema. Si toma parámetros, entonces el intérprete ejecuta la siguiente palabra en la lista para obtener un valor para pasar como primer parámetro.

Si un comando toma el lugar de un parámetro, se espera que el comando devuelva un valor. Y si el valor devuelto por el siguiente comando no está destinado a pasar a otro comando, el sistema informa un error si se encuentra dicha llamada en el texto del programa, o muestra el valor si el comando se llamó en modo interactivo .

Se admite el uso de la forma infija habitual de expresiones matemáticas y lógicas en operadores familiares, como "(2 + 3) * 5" y "2 > 5". Pero debido a que, según las reglas básicas del lenguaje, primero viene el comando y luego sus parámetros, para operaciones aritméticas y lógicas básicas en algunos dialectos (LCSI LogoWorlds y LogoWriter, por ejemplo) también existen comandos, utilizando ¿Qué expresiones toman la forma "multiplica suman 2 3 5" y "más? 2 5".

Hay un comando para expandir el diccionario con comandos personalizados, acepta un nuevo nombre de comando, una lista de parámetros y una lista de comandos.

Hay dos mecanismos principales para controlar la ejecución del programa: la sentencia de bucle con un número fijo de repeticiones y la recursividad.

Hola Mundo!

A HOLA IMPRIMIR [¡Hola mundo!] FINAL

En la versión rusa del idioma Logo:

POR SALUDOS ESCRIBE [¡Hola mundo!] EL FIN

Implementaciones

Hasta junio de 2010, ha habido al menos 246 implementaciones de Logo [3] desde que se creó el lenguaje.

Actualmente no existe un estándar único para el lenguaje Logo, aunque ciertas convenciones sobre los aspectos básicos del lenguaje son ampliamente aceptadas. Los dialectos de Logo tienen diferencias significativas. La situación se complica por la presencia de una serie de programas de gráficos de tortugas, que erróneamente se denominan "Logo".

La implementación dominante y más utilizada del lenguaje en ese momento era el sistema Apple Logo , desarrollado por LCSI para la computadora Apple II y distribuido en la década de 1980 . En Bulgaria , este producto se localizó al búlgaro y al ruso para computadoras compatibles con Apple II de la serie Pravets 8 , se distribuyó con el nombre "Logo 2.0" y se usó ampliamente en el proceso educativo en Bulgaria y la URSS . Posteriormente, se lanzó en Rusia una localización rusa del producto LCSI para MS-DOS llamada LogoWriter .

Una implementación multiplataforma gratuita de UCBLogo [4] , también conocida como Berkeley Logo , se usa ampliamente hoy en día , pero carece de una interfaz gráfica de usuario rudimentaria .

MSWLogo [5] y su versión más reciente FMSLogo [6] [7] están disponibles para Microsoft Windows y se utilizan ampliamente en las escuelas del Reino Unido y Australia . También se utilizan implementaciones comerciales de MicroWorlds Logo [8] e Imagine Logo [9] en las escuelas occidentales .

MSWLogo y FMSLogo admiten múltiples tortugas y gráficos 3D, así como E/S avanzadas y otras extensiones.

Para MacOS X , está disponible una implementación gratuita de ACSLogo [10] , que tiene una interfaz gráfica bastante avanzada, localización en varios idiomas y le permite agregar sus propias localizaciones.

En Rusia, el proceso educativo utiliza localizaciones rusas de LCSI MicroWorlds para Windows y Mac OS X llamadas "LogoMira" y "PervoLogo" [11] .

Véase también

Notas

  1. 1 2 3 https://www.ncwit.org/profile/cynthia-solomon
  2. Bob Johnstone. No importa las computadoras portátiles: niños, computadoras y la transformación del aprendizaje . -iUniverso, 2003-08-17. - S. 130. - 362 pág.
  3. The Logo Tree Project (enlace descendente) . Fecha de acceso: 4 de julio de 2009. Archivado desde el original el 6 de marzo de 2009. 
  4. Logotipo de Berkeley (UCBLogo) . Consultado el 2 de febrero de 2010. Archivado desde el original el 25 de enero de 2010.
  5. MSWLogo, un lenguaje de programación educativo . Consultado el 2 de febrero de 2010. Archivado desde el original el 12 de octubre de 2015.
  6. Logotipo de FMS . Consultado el 2 de febrero de 2010. Archivado desde el original el 15 de septiembre de 2015.
  7. Los planes archivados el 4 de octubre de 2009 en Developer Wayback Machine incluyen una versión multiplataforma
  8. Bienvenido a LCSI . Consultado el 2 de febrero de 2010. Archivado desde el original el 8 de octubre de 2015.
  9. Imagine Logo - Evaluación de software educativo - TEEM (enlace no disponible) . Consultado el 2 de febrero de 2010. Archivado desde el original el 29 de agosto de 2009. 
  10. ACSLogo para Mac OS X. Consultado el 2 de febrero de 2010. Archivado desde el original el 23 de marzo de 2010.
  11. Logotipo de productos en ruso (enlace inaccesible) . Consultado el 4 de julio de 2009. Archivado desde el original el 3 de agosto de 2009. 

Enlaces

Literatura