Abstract:
INTRODUCCIÓN. 1 Que es el Logo.
El Logo es un lenguaje de programación de alto nivel
orientado a educación. Fue diseñado y desarrollado por el
Doctor Seymour Papert en el Massachusetts Institute of
Technology. Es empleado en muchas escuelas primarias y
secundarias de varios paÍses. Es tan sencillo que es
aprendido fácilmente por los niños y lo suficientemente
poderoso para escribir programas complejos.
Este lenguaje no es exclusivo para niños. Puede emplearse
para programar aplicaciones como: compiladores,
comunicación con la computadora por medio de,lenguajes
naturales, consultas a bases de datos, matemáticas
simbólicas, etc.
1.1.1 Logo y educación.
El uso de las computadoras se ha difundido mucho, desde
Universidades e industrias avanzadas hasta el mismo hogar.
Su precio se reduce tanto que a finales de esta década
existirá prácticamente una en cada hogar y oficina. Por
ello el nitro debe conocerla desde su más temprana edad.
Muchas escuelas están adquiriendo computadoras para todos
los niveles de educación.
En la mayoría de los casos la computadora se utiliza para
hacer preguntas al niño, comprobar sus respuestas, reforzar
los puntos débiles y distribuir información.
En este ambiente el nitro es "programado" por la
computadora. Aun las juegos educativos que existen son muy
rígidos. En un sistema Logo la situación se invierte: el
niño, aun en edad muy temprana, programa a la computadora.
Al enseñar a la máquina, los niños se embarcan en una
exploración para descubrir como piensan ellos mismos. Eso
los ayuda mucho para la resolución de problemas de la vida
diaria. El niño adquiere la herramienta del algoritmo y el
modelo de como trabajarla una computadora, para resolver
problemas.
El Logo se convierte en un instrumento muy valioso en
diferentes campos de educación, como la- enseñanza de:
aritmética, geometría, física, gramática, etc.
Existen ,varias. implementaciones de :este lenguaje
disponibles en el mercado. Pero no existe ninguna para la
computadora HP-2000, por lo que se realiza el presente
trabajo para su construcción en esa máquina
1.0.2 Raíces del Logo•
Para el diseño y desarrollo del Logo el doctor Seymour
Papert se basó principalmente en:
a) Teorías del aprendizaje y conocimiento de Piaget. b)
Teorías de inteligencia artificial.
El primer punto corresponde a la Psicología, por lo que no
se hablará sobre él.
La inteligencia artificial es un campo de la ciencia de la
computación, que trata de las técnicas_ para extender la
capacidad de las computadoras para realizar funciones que
son consideradas inteligentes si se efectúan por humanos.
Por ejemplo: entender el lenguaje natural, aprender,
El presente informe se suscribe a- la forma en que se
implementa el Logo y no trata de explicar la influencia de
los estudios de inteligencia artificial en su desarrollo.
0.1.3 Relación con el Lisp.
Las computadoras pueden hacer cálculos matemáticos 'a
velocidades asombrosas. Pero existen otras aplicaciones en
las que se necesita trabajar con el significado expresado
por palabras, oraciones y párrafos.
La forma de representar las palabras y oraciones para
entender sus relaciones y significado se denomina
expresión-simbólica. Es por ello que un lenguaje que las
maneje puede resolver problemas como diagnósticos de
enfermedades, comunicación con lenguaje natural, búsqueda
de información, etc.
El Lisp es uno de los lenguajes más usados para el manejo
de expresiones simbólicas. Por ello es muy empleado en los
estudios de inteligencia artificial. -
El Logo toma muchas ideas y experiencias- ganadas por el
Lisp en el manejo de expresiones-simbólicas.
1.2 Computadoras virtuales.
.1, • -
Una computadora es un conjunto integrado de algoritmos y
estructuras de datos, capaz de 'guardar y ejecutar
programas. Puede ser implementada en dispositivos físicos
como circuitos electrónicos, ello forma una computadora en
"hardware", sinembargo se puede construir también por medio
de programas ejecutados en otra computadora, es decir
construirla en "software".
Una computadora parcial o. totalmente implementada en
"software" o microprogramación es lo que se llama una
computadora virtual.
La gran ventaja de un lenguaje de alto nivel es el poder
expresar las soluciones a problemas en una forma natural a
la aplicación del usuario. Pero este lenguaje no puede ser
ejecutado directamente por la computadora ya sea virtual o
física. Por eso la implementación de un lenguaje de alto
nivel consiste en la construcción de un traductor que toma
este lenguaje y lo convierte a un lenguaje comprendido por
la computadora física o virtual.
1. 2. 1 Intérpretes.
Si el traductor acepta programas en lenguaje de alto nivel
y•: produce un programa equivalente en lenguaje de máquina
directamente ejecutable por una computadora, física o
virtual entonces se denomina compilador.
•
Otra forma de ejecutar programas escritos en un lenguaje de
alto nivel es crear un intérprete. Este simula, por medio
programas en otra computadora huésped, una computadora cuyo
lenguaje de máquina es el lenguaje de alto nivel. Esto
implica construir en el lenguaje de máquina de la
computadora huésped los algoritmos y estructuras de datos
necesarios para la ejecución del lenguaje de alto nivel.
La implementación del lenguaje Lago se logra construyendo
un intérprete. En este informe se explican las estructuras
de datos y algoritmos necesarios para la ejecución de
programas escritos en Logo.
1.2.2 Lenguajes y computadoras virtuales.
Las estructuras
datos y algoritmos usados en la
ejecución de un programa escrito en un lenguaje de alto
nivel, están definidos por la implementación del lenguaje y
crean una computadora virtual. El lenguaje de máquina de
esta computadora es el programa en forma ejecutable
Producido por un compilador, o una estructura de datos
alternativa, si es interpretado.
La computadora virtual asociada con la implementación de un
lenguaje es claramente distinta de la computadora virtual
definida al momento de utilizar un programa escrito en ese
lenguaje, ya que diferentes implementaciones del mismo
lenguaje de alto nivel pueden definir diferentes máquinas
virtuales.
11.2./ Jerarquía de computadoras.
El usuario de una computadora no trabaja casi nunca con la
computadora física, más bien usa una computadora virtual
situada en un nivel más elevado que los elementos y
detalles físicos de la computadora huésped.
Los niveles de computadoras que utiliza una persona forman
una jerarquía. Esta jerarquía comienza con la computadora
física y no tiene ningún final definido, ya que siempre se
puede construir y usar una computadora virtual en un nivel
superior: (..
El usuario del Logo trabaja con la computadora virtual
definida por este lenguaje. Pero para tener una idea más
clara de este informe se describe aquí la posición que
ocupa la computadora logo.
a) Computadora física: en el nivel más inferior se
encuentra la verdadera computadora física, construida
con circuitos electrónicos, orientada al manejo de
"stack", etc. Es una minicomputadora HP-1000.
.z, - • -
b) Sistema operativo: muy pocas personas programan al nivel
de la computadora física._ Se necesitan ayudas para
manejar archivos, distribución de recursos como memoria,
dispositivos de entrada/salida. Estas nuevas facilidades
on proporcionadas por el-sistema operativo, el cual
también elimina las operaciones primitivas de
entrada/salida para que el usuario no las emplee. El
sistema operativo utilizado - es el MPE que- permite
multiprogramación, trabajos en tiempo compartido y en
tandas. , .
e) Máquina virtual Pascal. El interprete de Logo es
implementado usando .el lenguaje de propósito general
llamado Pascal. Asi se utilizó la computadora virtual
definida por el Pascal, los programas fueron escritos en
lenguaje de máquina y estructuras de datos de la
computadora Pascal.
d) Máquina virtual del interpreté Logo. La implementación
del intérprete Logo crea una computadora virtual que
tiene todas las estructuras y algoritmos capaces de
ejecutar programas escritos en Logo. Estas estructuras
no son visibles para el programador de Logo.
e) Máquina virtual logo. Es-la computadora con la que
•
trabaja el usuario del Logo. Posee todas las estructuras
y algoritmos para ejecutar programas escritos para sus
aplicaciones especificas.
11.2.4 Estructura y operación de una computadora.
Cuando hablamos de una compUtadora debemos especificar el
nivel en el que estamos trabajando. Pero hay ciertas
características que son comunes a todos los niveles de la
jerarquía de máquinas. Estos son:
a) datos: la clase de datos que existen disponibles para el
usuario como enteros, reales, letras, etc.
rt5
) Operaciones primitivas: las operaciones que puede
realizar la computadora como sumar, leer un dato, etc.
e) Secuencia de control: la forma en que se determina el
orden de.ejecución de las operaciones primitivas.
d) Control de datos: la forma en que la computadora
controla que los operandos de las operaciones sean del
tipo adecuado.
e) Manejo de almacenamiento: como guarda los datos en
memoria, reconoce las instrucciones y programas y puede
localizarlos fácilmente.
f) ambiente de operación.
Así al hablar de una computadora se deberán indicar estos
elementos para comprenderla y conocer su operación., No
importa el nivel en que estamos trabajando. En el presente
informe se hace referencia a estas características para la
descripción de las computadoras virtuales creadas.
1.3 Descripción del informe.
En el capitulo 2 se describe la maquina virtual del
lenguaje Logo. Contiene los principales elementos del
lenguaje empleados por los usuarios en la construcción de
programas.
El capitulo / explica la máquina virtual definida por la
construcción del presente intérprete. Indica la forma en
que las ordenes Logo son ejecutadas para producir los
resultados esperados por el usuario.
En el capitulo 4 -se explica el análisis de léxico y
sintaxis que sufre una instrucción Logo para determinar si
corresponde o no al lenguaje.
El apéndice A contiene la sintaxis del lenguaje en notación
BNF.
El apéndice B presenta el listado de un programa escrito en
Logo.
El apéndice C muestra un listado de las instrucciones Logo
que puede ejecutar el intérprete que se construyó. RR