Logo Programming
El lenguaje de programación Logo, un dialecto de Lisp, fue diseñado como una herramienta de aprendizaje. Sus características (interactividad, modularidad, extensibilidad, flexibilidad de tipos de datos) se derivan de este objetivo.
Interactividad
Aunque existen algunas versiones de Logo que se compilan, generalmente se implementa como un lenguaje interpretado. La interactividad de este enfoque proporciona al usuario retroalimentación inmediata sobre instrucciones individuales, ayudando así en el proceso de depuración y aprendizaje. Los mensajes de error son descriptivos. Por ejemplo:
fowad
I don't know how to fowad ( no se como fowad )
(La palabra fowad no es una primitiva, una de las palabras integradas de Logo, ni un procedimiento que usted haya definido)
forward
Not enough inputs to forward (No hay suficientes entradas para reenviar)
(Ahora que la ha escrito correctamente, Logo conoce la palabra forward, pero no puede ejecutar la instrucción porque forward requiere información adicional)
forward 100
(Logo está feliz. No hay ningún mensaje de error. La tortuga avanza 100 pasos.)
Modularidad y extensibilidad
Los programas Logo suelen ser colecciones de pequeños procedimientos. Generalmente, los procedimientos se definen escribiéndolos en un editor de texto. La palabra especial to va seguida del nombre del procedimiento. Las líneas siguientes forman la definición del procedimiento. La palabra end indica que has terminado.
En nuestro ejemplo de gráficos de tortuga definimos un procedimiento para dibujar un cuadrado.
to square (cuadrar)
repeat 4 [forward 50 right 90] (repetir 4 [adelante 50 derecha 90])
end (fin)
y lo utilizó como subprocedimiento de otro procedimiento
to flower (florecer)
repeat 36 [right 10 square] (repetir 36 [cuadro 10 a la derecha])
end (fin)
De manera similar, flower podría ser un componente básico de algo más grande.
to garden (al jardín)
repeat 25 [set-random-position flower] (repetir 25 [establecer flor en posición aleatoria])
end (fin)
No, set-random-position no es una primitiva, pero random sí lo es y también lo es setposition (o setpos o setxy). O podrías escribir set-random-position usando forward y right con random.
Una vez que se define un procedimiento Logo, funciona como las primitivas Logo. De hecho, cuando observa los programas de Logo, no hay forma de saber qué palabras son primitivas y cuáles están definidas por el usuario a menos que conozca esa implementación de Logo en particular. En nuestra muestra de lenguaje utilizamos el procedimiento pick para seleccionar aleatoriamente un elemento de una lista, por ejemplo en el procedimiento who.
to who (a quién)
output pick [Sandy Dale Dana Chris] (selección de salida [Sandy Dale Dana Chris])
end (fin)
En algunas versiones de Logo pick es primitivo, mientras que en otras tienes que escribirlo tú mismo. Who se vería y funcionaría de la misma manera en cualquier caso.
Logo le permite desarrollar proyectos complejos en pequeños pasos. La programación en Logo se realiza añadiendo vocabulario, enseñándole nuevas palabras en términos de palabras que ya conoce. En este sentido, es similar a la forma en que la gente aprende el lenguaje hablado.
Flexibilidad
Logo funciona con palabras y listas. Una palabra de Logo es una cadena de caracteres. Una lista de logotipos es una colección ordenada de palabras o listas. Los números son palabras, pero son especiales porque puedes hacer cosas como la aritmética con ellos.Muchos lenguajes de programación son bastante estrictos al querer saber exactamente qué tipo de datos afirma estar utilizando. Esto hace las cosas más fáciles para la computadora, pero más difíciles para el programador. Antes de sumar un par de números, es posible que tengas que especificar si son números enteros o reales. La computadora necesita saber esas cosas. Pero la mayoría de la gente no piensa en esto, por lo que Logo se encarga de ello por usted. Cuando se le pide que haga aritmética, Logo simplemente lo hace.print 3 + 4 (imprimir 3 + 4)
7print 3 / 4 (imprimir 3/4)
.75Si no estás familiarizado con Logo pero trabajas en otros lenguajes de programación, la siguiente secuencia puede que te sorprenda:print word "apple "sauce (imprimir la palabra "salsa de manzana")
applesauceprint word "3 "4 (imprimir la palabra "3 "4)
34print 12 + word "3 "4 (imprimir 12 + palabra "3 "4)46Aquí hay un procedimiento recursivo que calcula factoriales:to factorial :number (al factorial :número)
if :number = 1 [output 1] (si: número = 1 [salida 1])
output :number * factorial :number - 1 (salida :número * factorial :número - 1)
end (fin)
print factorial 3 (impresión factorial 3)
6print factorial 5 (impresión factorial 5)
120A continuación se muestra un procedimiento para invertir una lista de palabras:to reverse :stuff (para revertir: cosas)
ifelse equal? count :stuff 1 (¿Si no es igual? contar: cosas 1)
[output first :stuff] ([salida primero: cosas])[output sentence reverse butfirst :stuff first :stuff] ([oración de salida al revés pero primero: cosas primero: cosas])
end (fin)print reverse [apples and pears] (imprimir reverso [manzanas y peras])
pears and apples (peras y manzanas)Quizás también quieras echar un vistazo a la interesante muestra de Logo de Brian Harvey.
Mejoras
Las características que se acaban de ilustrar son comunes a todas las versiones de Logo. Algunas implementaciones de Logo incluyen funciones de lenguaje mejoradas.
Había un logotipo orientado a objetos llamado Object Logo para Macintosh.
MicroWorlds Logo incluye multitarea para que se puedan ejecutar varios procesos independientes simultáneamente. La misma capacidad se encuentra en el software de Control Lab, un producto del logotipo de LEGO. Un logotipo aún más paralelo es StarLogo.
En un Logo tradicional la orden a la tortuga
repeat 9999 [forward 1 right 1] (repetir 9999 [adelante 1 derecha 1])
tomaría un tiempo ejecutarlo. La instrucción
repeat 9999 [forward 1 right 1] print "HELLO (repetir 9999 [adelante 1 derecha 1] imprimir "HELLO)
Haría que apareciera la palabra HELLO después de que la tortuga terminara de moverse.
En MicroWorlds Logo escribiendo
launch [repeat 9999 [forward 1 right 1]] print "HELLO (iniciar [repetir 9999 [adelante 1 derecha 1]] imprimir "HELLO)
haría que la tortuga se pusiera en marcha. La palabra HELLO aparecerá tan pronto como se inicie el primer proceso. O
forever [forward 1 right 1] print "HELLO (para siempre [adelante 1 derecha 1] imprime "HELLO)
iniciaría un proceso que continuaría hasta que lo detuvieras. Nuevamente, la palabra HELLO aparecerá tan pronto como se inicie el proceso de tortuga.
Saber más
Para obtener más información sobre el lenguaje de programación Logo, consulte los tres volúmenes épicos de Computer Science Logo Style de Brian Harvey y Advanced Logo de Michael Friendly.
Si no tiene Logo y desea comenzar, puede consultar nuestra página del software Logo. O simplemente puede descargar UCBLogo, MSWLogo, FMSLogo, StarLogo TNG o StarLogo Nova ahora mismo.
This article was translated into Spanish by the spanish essay writers team from EssayService. Original source at the link.
Frequently asked questions
New posts to your inbox!
Your submission has been received!