820 likes | 1.17k Views
El lenguaje Logo. Nicolás Carrascal Mesa José María De Benito Saucedo José David Gutiérrez Gutiérrez. Índice. Introducción Historia de Logo Mindstorms Estado actual Relación con otros lenguajes Paradigmas de Logo Conceptos de Logo Primitivas del lenguaje Ejemplos Casos de estudio.
E N D
El lenguaje Logo Nicolás Carrascal Mesa José María De Benito Saucedo José David Gutiérrez Gutiérrez
Índice • Introducción • Historia de Logo • Mindstorms • Estado actual • Relación con otros lenguajes • Paradigmas de Logo • Conceptos de Logo • Primitivas del lenguaje • Ejemplos • Casos de estudio.
Introducción • Fue creado a mediados de los años 60. • Está inspirado en Lisp. • Es un lenguaje diseñado fines didácticos. • Centrado en la geometría.
Historia del Lenguaje Logo. • Creado en 1967, en el departamento de Inteligencia Artificial del MIT. • Seymour Papert. • Wallace Feurzeig. • Cyntia Solomon. • Marvin Minsky
Historia del Lenguaje Logo. • El elemento más característico de Logo es la tortuga. • Cursor que realiza las operaciones de dibujo. • Llamado así por el robot usado para dibujar en los inicios del lenguaje.
Historia del Lenguaje Logo. • Durante los años 70, se continuó desarrollando en el MIT y en otros lugares como Edimburgo y Tasmania. • Se realizaron algunos proyectos de investigación en escuelas de Massachusetts. • Empezó a generalizarse su uso a finales de los 70, con el auge de los ordenadores personales.
Historia del Lenguaje Logo. • Las primeras versiones que alcanzaron cierta popularidad fueron las desarrolladas para el Apple II y Texas Instruments 99/4. • En 1980 se introdujeron varios ordenadores en algunos colegios de Estados Unidos como parte de un proyecto piloto. • Logo todavía sigue usándose en algunos de estos colegios.
Historia del Lenguaje Logo. • En 1980 se fundó la Logo Computer Systems, Inc (LCSI). • La mayoría de los creadores de Logo participaron en esta empresa. • Durante esta década surgieron las primeras versiones comerciales de Logo. • TI Logo de Texas Instrument. • Apple Logo de la LCSI.
Historia del Lenguaje Logo. • El momento de máximo esplendor llegó con la publicación de Mindstorms, de Seymour Papert. • Aumentó el uso de Logo en las aulas. • Se tradujo a multitud de idiomas y se implementó en una gran variedad de máquinas: • MSX en Europa, América del Sur y Japón. • Atari y Commodore en América del Norte. • MacLogo (LCSI). • Object Logo (Coral Software) • PcLogo (Hardvard Associates)
Historia del Lenguaje Logo. • A mediados de los 80 se desarrolló Lego Logo. • Mitchel Resnik y Steve Ocko. • Alcanzó una gran popularidad. • A principios de los 90 se empezó a considerar logo como algo obsoleto. • A pesar de ello, se siguió usando en algunos países. • En Inglaterra llegó a incluirse en el plan nacional de estudios
Mindstorms (Desafío a la mente) • En él, Seymour Papert ofrece una visión de la educación en el futuro. • Relaciona el uso de ordenadores con las ideas de Piaget sobre el desarrollo cognitivo (Contructivismo). • Adaptación por asimilación y acomodación con realimentación. • El pensar se configura por la información que el sujeto va recibiendo. • Aprendizaje factores externos vs aprendizajeinterno y activado por la experiencia
Mindstorms (Desafío a la mente) • Construccionismo de Papert. • El juego como elemento importante en el proceso de aprendizaje. • Conseguir que el niño piense de manera formal. • Los ordenadores: • pueden ser programados • están sustentados por ideas matemáticas. • El niño llegará gradualmente, a convertirse en programador de la máquina. • Desarrollo por cultura vs desarrollo por edad. • s
Estado actual • Microworlds. • Su primera versión la lanzó la LCSI en 1993. • Introducía multitarea y procesamiento paralelo. • Existen muchas versiones diferentes. • Todavía se comercializa y utiliza en la actualidad.
Estado actual • UCBLogo • Escrito por Brian Harvey en la universidad de Berkeley. • Una de las versiones más conocidas. • Versiones para DOS, Windows, Unix, MacOS. • Su última versión es la 6.0 (Septiembre de 2008)
Estado actual • MSWLogo. • Desarrollado por George Mills • La última versión es la 6.5b (Diciembre de 2002) • FMSLogo. • Desarrollado por David Constanzo. • La última versión es de diciembre de 2009 • Construidas a partir del núcleo de UCB. • Todavía se usa en colegios de Australia y Reino Unido.
Estado actual • StarLogo • Desarrollado por Mitchel Restnick y Eric Klopfer en el MIT. • Se considera un lenguaje derivado en lugar de una versión. • Lleva el paralelismo a un nivel superior. • Miles de procesos actúan a la vez. • Usado para simulaciones de varios agentes. • La versión más actual es Starlogo TNG 1.5.1 (Enero de 2011).
Estado actual • NetLogo • Desarrollado por Uri Wilensky. • Escrito en Java y Scala. • Influenciado por StarLogo • Centrado en el uso de un gran número de agentes que actúan de manera independiente. • Exploración de fenómenos complejos. • Librerías para modelar sistemas de dominios muy dispares, (económicos, biológicos, físicos, químicos....) • La última versión es la 4.1.2 (Diciembre 2010)
Estado actual • En la actualidad se cuentan unas 197 implementaciones distintas de Logo. • Muchas de ellas desfasadas. • No existe un estándar Logo • La versión UCB es lo más parecido. • En lo sucesivo, se referirá a Xlogo • Interprete escrito en Java. • Licencia GPL. • http://xlogo.tuxfamily.org/
Relación con otros lenguajes. • Logo también ha influido en los siguientes lenguajes: • Smalltalk • Creado por Alan Kay, Dan Ingalls y Adele Goldberg. • Es un lenguaje orientado a objetos dinámicamente tipificado. • Creado, en parte, como lenguaje destinado al uso didáctico para llevar a cabo la teoría construccionista del aprendizaje • Etoys: • Desarrollado por Dan Ingalls. • Es un lenguaje orientado a objetos y basado en prototipos • Usado en la enseñanza. Con un entorno muy amigable.
Relación con otros lenguajes. • Scratch: • Creado por Mitchel Resnick en 2007. • Lenguaje dedicado a la enseñanza. • Permite experimentar con los conceptos que tiene un lenguaje de alto nivel mediante el uso de una sencilla interfaz gráfica. • Rebol (Relative Expression Based Object Language) • Desarrollado por Carl Sassenrath en 1997. • Es un lenguaje de intercambio de datos. • Utilizado para programar aplicaciones de Internet (clientes y servidores) , bases de datos, y aplicaciones multimedia.
Paradigmas de Logo • Funcional: • Es un lenguaje funcional, herencia que recibe directamente de Lisp. • Procedural: • Este concepto deriva de la programación estructurada, y significa que el lenguaje se basa en llamadas a rutinas. • Interpretado: • Diseñado para ejecutarse a través de un intérprete y no compilado.
Paradigmas de Logo • Reflectivo: • Son aquellos que tienen la capacidad de observar y modificar su estructura de alto nivel. • En los lenguajes que no distinguen entre tiempo de ejecución y tiempo de compilación, no hay diferencia entre compilación o interpretación de código y reflexión. • Educativo: • Diseñado para la enseñanza.
Conceptos de Logo. • El cursor o tortuga se controla mediante comando que hacen referencia a su posición relativa. • Avanza • Retrocede • Giraizquierda • Giraderecha
Conceptos de Logo. • La tortuga también puede controlarse mediante coordenadas cartesianas. • posicion • ponx • pony • ponxy • ponrumbo • hacia • centro
Conceptos de Logo. • Las expresiones consisten en: • Nombre de procedimiento. • Una o varias expresiones (argumentos). • Logo primero evalúa las subexpresiones del argumento y luego invoca al procedimiento. • Para que no se evalúe una expresión, debe ir precedida por comillas doble (“).
Conceptos de Logo. • Variables. • Pueden ser globales o locales • En Xlogo las variables locales no son accesibles por los procedimientos llamados. • Para acceder a una variable, su nombre debe ir precedido por dos puntos (:) • Tipos. • Numero • Palabra • Lista
Conceptos de Logo. • Lista de propiedades • Un tipo especial, consistente en un nombre seguido por una serie de pares (atributo, valor) • Ej: • En algunas implementaciones (UCBLogo) también existe el tipo array.
Primitivas del lenguaje. • Se puede modificar las propiedades de la tortuga • muestratortuga / ocultatortuga • subelapiz / bajalapiz • poncolorlapiz • pongrosor • ponformalapiz
Primitivas del lenguaje. • Operaciones aritméticas • Suma, multiplica, seno… • Operaciones lógicas • Y, o, no. • Tests (número?, entero?, vacio?, …)
Primitivas del lenguaje. • Operaciones con variables • haz, local, borra, … • ejecuta: Ejecuta la lista de instrucciones contenida en una lista. • Ej: • Ej: arcoiris
Primitivas del lenguaje. • Operaciones con listas • Palabra, lista, primero, ultimo, elemento, agrega, reemplaza, … • Ej:
Estructuras de control • Condicional • si expresión_lógica [comandos1] [comandos2] • Ej: • Si en lugar de lista de comandos, se quiere utilizar variables, hay que utilizar sisino. • Ej:
Estructuras de control • En otras implementaciones de Logo tenemos las estructuras condicionales SI y SISINO con el siguiente esquema: • si expresión_lógica [comandos1] • sino expresión_lógica [comandos1] [comandos2] • Por ello, la posible explicación de que se mantenga el SISINO en XLogo puede ser por la conservación de la sintaxis tradicional de Logo más que por su utilidad.
Estructuras de control • Bucle repeat • repite n [ lista_de_comandos ] • Ej: • La variable contador indica en número de la iteración en curso • Bucle While • mientras [lista_a_evaluar] [ lista_de_comandos ] • Ej:
Estructuras de control • Bucle for • repitepara [ lista1 ] [ lista2 ] • Ej: • Bucle for each • paracada nombre_variable lista_o_palabra [ lista_de_comandos ] • Ej:
Ejemplos:Básico • Futuro de un verbo: Conjuga el futuro de un verbo regular para todas las personas. Para ello hay almacenadas dos listas, una con los pronombres personales y otra con las terminaciones. • futurolistas "comer • yo comere • tu comeras • el comera • nosotros comeremos • vosotros comereis • ellos comeran
Ejemplos:Básico • Círculo de palabras: Se dibuja una circunferencia con 40 puntos equidistantes desde los cuales se escribe “Logo forever”.
Ejemplos:Básico • Casas: Se dibujan 4 casas cada una de un tamaño mayor que la anterior. La figura de la casa se compone de un cuadrado y un triángulo generados por separado.
Ejemplos:Azar • Figuras aleatorias: Se rellena el área de dibujo con estrellas, lunas y peces coloreados y colocados aleatoriamente.
Ejemplos:Azar • Alambres aleatorios: Se rellena el área de dibujo con alambres de distintos tipos coloreados y colocados aleatoriamente. Mediante el dibujado de la imagen Sucesivas veces con diferente grosor y tonalidades del mismo color se consigue el efecto de profundidad.
Ejemplos:Azar • Grietas: Se generan grietas con posición y dirección aleatorias que terminan al colisionar con otra grieta o con el marco del área de dibujo. Tras haber generado las grietas se colorean aleatoriamente algunas zonas.
Ejemplos:Espirales • Rosa: Mediante la superposición de 4 pares de espirales simétricas y giradas 90 grados respecto a la anterior se crea la imagen de una rosa. Imagen de detalle de un par de espirales simétricas. .
Ejemplos:Nubes de puntos • Toro de KAM:Se dibuja un "Toro de KAM". El teorema de KAM se usa en Física Cuántica para explicar la existencia de curvas estables (toros de KAM) bajo pequeñas perturbaciones de un sistema mecánico.
Ejemplos:Curvas en coordenadas polares • Espirales en polares. • Espiral de Arquímedes: Las vueltas sucesivas de la espiral tienen distancias de separación constantes.
Ejemplos:Curvas en coordenadas polares • Espiral de Fermat: El radio es proporcional a la raíz cuadrada del ángulo, por lo que cada par de vueltas tendrá menos separación que el anterior.
Ejemplos:Curvas en coordenadas polares • Espiral Equiangular: El radio depende exponencialmente del ángulo, por lo que la espiral crece muy rápidamente.
Ejemplos:Curvas en coordenadas polares • Orquídea de Arquímedes: Es el resultado de añadir a la espiral de Arquímedes una pequeña ondulación.
Ejemplos:3D • En XLogo se puede pasar al modo 3D utilizando la primitiva perspectiva. Cuando usamos dicha primitiva, la forma y orientación de la tortuga cambian. • Los semiejes en el espacio de tres dimensiones se dispondrían de la siguiente forma en el área de trabajo.
Ejemplos:3D • El cuadrado dibujado anteriormente en el modo 2D ahora se vería de la siguiente forma: • Las primitivas básicas de las que disponemos son: • subenariz y bajanariz: La tortuga cambia a un eje de dirección superior o inferior al actual. • balanceaderecha y balanceaizquierda: La tortuga rota alrededor del eje de dirección en el que nos encontramos.
Ejemplos:3D • Tetraedro: Se genera un tetraedro compuesto por trigángulos dispuestos en el espacio de tres dimensiones.