PDF de programación - Introducción a Logo - Taller de Programación Simbólica y Robótica

Imágen de pdf Introducción a Logo - Taller de Programación Simbólica y Robótica

Introducción a Logo - Taller de Programación Simbólica y Robóticagráfica de visualizaciones

Publicado el 8 de Mayo del 2017
559 visualizaciones desde el 8 de Mayo del 2017
136,9 KB
17 paginas
Creado hace 16a (08/12/2004)
Taller de Programación Simbólica y Robótica

Introducción a Logo.

Dr. Alejandro Guerra Hernández

Departamento de Inteligencia Artificial

Facultad de Física e Inteligencia Artificial

Universidad Veracruzana

Sebastián Camacho No. 5, Xalapa, Ver., México 91000

[email protected]

8 de diciembre de 2004

El objetivo de esta primer sesión del taller es familiarizarlos con los con-
ceptos básicos de Logo y la programación simbólica. En los años 80, Logo se
hizo famoso por la tortuga gráfica que lo acompaña y su uso en la enseñanza de
la programación orientada a estudiantes de secundaria. Curiosamente, el valor
didáctico de Logo le adjudicó la reputación de ser un lenguaje para jugar con
adolescentes. En realidad Logo es un poderoso subconjunto de Lisp, y por lo
tanto, ofrece todas las ventajas del paradigma de programación funcional, por
ejemplo: programación incremental, verificación interactiva, uniformidad de re-
presentación entre datos y programas, etc. Estos conceptos serán explicados a
lo largo de la sesión.

Para llevar a cabo nuestra práctica, utilizaremos el p-logo, una reimplemen-
tación del UCB Logo de la Universidad de Berkeley1 que nos permitirá comuni-
carnos con el robot Pioneer 2 y su simulador. El intérprete de Logo está instalado
normalmente en el directorio raíz de su computadora, en el foder p-logo, por
ejemplo: c:/p-logo. Para ejecutar Logo, haga click sobre su ícono o escriba
p-logo en un intérprete de comandos.

1. Exploraciones

Al correr Logo, el intérprete muestra el siguiente mensaje:

Welcome to Berkeley Logo version 5.4
?

1Que ustedes pueden bajar gratuitamente en la siguiente dirección electrónica:

http://www.cs.berkeley.edu/∼bh/.

1

El signo de interrogación, conocido como prompt, indica que la computadora

está lista para recibir una instrucción para que Logo la ejecute.

Ahora escriba la siguiente instrucción2:

? repeat 50 [setcursor list random 75 random 20 type "Hola]

Si Logo le reporta un error, verifique los espacios entre las palabras. De lo
contrario observe los saludos del intérprete en la pantalla y trate de entender la
instrucción que acaba de ejecutar.

Una conversación más larga

Las palabras como type y random son nombres de procedimientos, código
especializado en resolver una tarea en partícular. Si requiere de ayuda sobre el
significado de un procedimiento, puede solicitarla con el procedimiento help, por
ejemplo help "type. Las comillas son necesarias y la razón de ello la veremos
más adelante. Ahora vamos a expandir el vocabulario de Logo, inventando un
nuevo procedimiento al que llamaremos hola. En el prompt, escriba lo siguiente:

? to hola
Logo debe responder cambiando el prompt al signo mayor que (>) al principio
de la línea:

? to hola
>
este prompt indica que los que escribamos no será directamente ejecutado por
Logo, sino que el intérprete tomará estas instrucciones como la definición de
hola. Continue escribiendo lo siguiente:

> print [Hola, cual es tu nombre? ]
> print sentence [Como estas, ] word first readlist "?
> ignore readlist
> print [Que bien!]
> end
Logo respondera con un:

hola defined
para indicarnos que el procedimiento hola ha sido definido. Intente ahora invo-
car este nuevo procedimiento. Solo debe escribir hola y teclear return. Esta es
mi conversación con Logo al ejecutar hola:

? hola
Hola, cual es tu nombre?
Alejandro Guerra
Como estas, Alejandro?
bien
Que bien!

2El signo de interrogación no se escribe, es el prompt de Logo.

2

Grabando el espacio de trabajo

Si se escribe un conjunto de procedimientos como hola, es muy probable
que quieran guardar su definición en un archivo, de forma que éstas puedan
utilizarse en sesiones posteriores de Logo. El comando save se utiliza con este
fin:

save "mis_saludos

esta instrucción le dice a Logo que guarde las instrucciones definidas hasta ahora,
en un archivo llamado mis saludos. La próxima vez que se quieran utilizar estos
procedimientos, podrás utilizar las definiciones guardadas con el comando load:

load "mis_saludos

2. Procedimientos

Hay dos ideas centrales que deben comprenderse bien para sacarle provecho
a un lenguaje como Logo, estas son los procedimientos y la evaluación de los
mismos. En respuesta a la instrucción siguiente:

print 17

Logo responderá:

17

Aunque esta instrucción no hace gran cosa, es importante comprender como
funciona. La palabra print es el nombre de un procedimiento, que se encarga
de imprimir cosas en la pantalla de nuestra computadora. La expresión print
17 es una instrucción que invoca (ejecuta) el procedimiento print con una
entrada específica, 17.

Logo difiere de otros lenguajes de programación por su sintaxis. En lenguajes
como C o Java, tenemos diferentes tipos de expresiones con reglas sintácticas pa-
ra cada uno de ellos, por ejemplo, la expresión if tiene sintaxis diferente a la de
la expresión while y diferente también a una operación de asignación. En Logo
todo enunciado del lenguaje toma la forma de invocación de un procedimiento.
Logo tiene predefinidos unos 200 procedimientos básicos. La tarea de un
programador Logo es enriquecer ese repertorio con nuevos procedimientos que
muy probablemente harán uso de los procedimientos básicos ya definidos.

Términos técnicos

Introduzcamos el vocabulario necesario para describir los experimentos que
hemos venido realizando. Una instrucción es lo que escribimos para pedirle a
Logo que haga algo. Ejemplo, print 17. Un procedimiento es como una receta
o plan para llevar a cabo cierta tarea. El procedimiento especifica como hacer

3

las cosas, pero no lleva a cabo ninguna acción. Para ello, es necesario que algo
invoque al procedimiento y ese es el trabajo de las instrucciones. Las instruccio-
nes invocan procedimientos. ¿Como escapa Logo de un posible círculo vicioso?
Eventualmente todo hace referencia a los procedimientos básicos que producen
valores, abundaremos más adelante sobre este punto.

Evaluación

Intenten ahora esta instrucción:

? print sum 2 3

si todo marcha bien, Logo no imprime sum 2 3, sino 5. La entrada de print fue
la expresión sum 2 3, pero Logo evalúa esta entrada antes de pasarla a print.
Esto significa que Logo debe invocar los procedimientos necesarios para com-
putar 5. Este procedimiento es la instrucción sum que requiere de dos entradas,
en este caso son 2 y 3. La tarea de sum es sumar dos números, de forma que la
salida de sum se convierte en la entrada de print.

No se debe confundir la salida de un procedimiento con el efecto de print.
En este ejemplo, sum tiene como salida el número 5, pero print no produce
ninguna salida. Esto es, sum produce un valor y print no. Intenten evaluar esta
expresión antes de que revisemos su evaluación:

? print sum 4 product 10 2

Logo evalúa la expresón de la siguiente forma:

1. La primer palabra en la instrucción es print. Logo sabe que print es el
nombre de un procedimiento y que éste necesita de una entrada, así que
continua leyendo la instrucción.

2. La siguiente palabra en la instrucción es sum, otro nombre de procedimien-

to. Esto le indica a Logo que la salida de sum será la entrada de print.

3. Logo sabe que sum necesita dos entradas, de forma que no puede invocar

este procedimiento hasta encontrar los valores de estas entradas.

4. La siguiente palabra en la instrucción es 4. Como toda expresión en Logo,
4 debe ser evaluado. Afortunadamente, la evaluación de un número da
como salida el mismo número. De esta forma Logo sabe que 4 es la primer
entrada de sum.

5. La siguiente palabra en la instrucción es product. Como se trata del nom-
bre de un procedimiento que necesita dos entradas, Logo sigue explorando
la instrucción.

6. La siguiente palabra es 10, que como sabemos, al evaluarse da como salida

10, por lo que consituye la primer entrada de product.

4

7. La siguiente palabra es 2, que se evalúa de la misma forma.

8. Ahora Logo puede invocar el procedimiento product, cuyas entradas son

10 y 2. El valor de salida de esta invocación es 20.

9. El valor de salida 20, constituye la segunda entrada para sum. Logo puede
ahora invocar este procedimiento con las entradas 4 y 20. La salida de esta
invocación es 24.

10. La salida de sum 24 es la entrada de print. Logo puede ahora invocar a

este procedimiento para desplegar en la pantalla 24.

Usar la salida de un procedimiento como la entrada de otro, se conoce técni-
camente como composición de funciones. Una de las ventajas de esta técnica es
que hace prácticamente innecesarias las asignaciones a variables y los procedi-
mientos que llevan a cabo efectos colaterales de riesgo, por ejemplo, modificar
variables globales.

Mensajes de error

Hemos observado que Logo sabe cuantas entradas son necesarias para un
procedimiento en particular. Por ejemplo, print necesita una. ¿Qué sucede si
se invoca a un procedimiento con un número incorrecto de entradas? Prueben
lo siguiente:

? print

a lo que Logo responderá:

not enough inputs to print

El mensaje de error de Logo es bastante informativo. Primero nos indica
que el problema es que no usamos el número suficiente de entradas en la invo-
cación, y luego nos dice que el procedimiento con problemas es print. Traten
de interpretar la siguiente interacción:

? print sum product 4 5
not enough inputs to sum

El mensaje en este caso, nos ayuda a distinguir que es sum y no los otros proce-
dimientos invocados, el que necesita más entradas.

Los mensajes de error fueron diseñados cuidadosamente por el equipo que
desarrollo Logo en el MIT. Si se presenta un error, el mensaje suele ser impor-
tante para corregirlo. Interpreten la siguiente interacción:

? print 2 3
2
You don’t say what to do with 3

5

Comandos, Operaciones e Instrucciones

Como habrán observado, Logo en realidad tiene dos tipos de procedimientos,
dependiendo de si regresan o no un valor de salida: comandos y operaciones3:

Operaciones. Son procedimientos que computa
  • Links de descarga
http://lwp-l.com/pdf3391

Comentarios de: Introducción a Logo - Taller de Programación Simbólica y Robótica (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad