Los ordenadores son capaces de realizar las tareas más sorprendentes, pero sólo si se les da instrucciones detalladas y totalmente precisas. Creemos que Forth es un medio simple y natural de hacer esto.
Hemos añadido algunas palabras básicas necesarias para construir las distintas
luces de un semáforo -
RED RED-&-YELLOW GREEN YELLOW ( rojo, rojo y ambar, verde, ambar )
- las cuatro fases de la secuencia (como se utilizan en
el Reino Unido).
Teclee una de estas palabras y pulse la tecla Enter para ver lo que dicha palabra hace. El ordenador añade un OK final, para indicar que la palabra ha terminado sin problemas. (Pulse siempre la tecla Enter para terminar una línea - esto no volverá a mencionarse).
Observe que escribimos RED-&-YELLOW y no RED & YELLOW, para que forme una única palabra. Igual que en español, los espacios separan las palabras.
Ahora construya esta secuencia en una palabra "paraguas": PHASES (fases). Esto lo hacemos usando : (dos puntos) antes y ; (punto y coma) después, como en
: PHASES RED RED-&-YELLOW GREEN YELLOW ;
(El ordenador responderá a las instrucciones que no comprenda con ? en vez de OK, generalmente porque la instrucción no fue completamente exacta. Simplemente pulse Enter y tecléela correctamente.)
Ahora que ha construido la palabra PHASES, puede utilizarla igual que hizo antes con las palabras RED y GREEN. Pruébelo ahora introduciendo
PHASES
y verá que ejecuta la secuencia esperada.
Para completar nuestro semáforo, la secuencia debe repetirse hasta que se apague. Consiga esto construyendo TRAFFIC-LIGHT (semáforo) como una palabra que repite PHASES una y otra vez utilizando
: TRAFFIC-LIGHT LAMP-POST BEGIN PHASES AGAIN ;
BEGIN (comienzo) y AGAIN (otra vez) son palabras estandar
en Forth. Pruébelo ahora introduciendo TRAFFIC-LIGHT
Vea como se repite indefinidamente y termínela pulsando la tecla Esc.
¡Enhorabuena!
- ¡Acaba Vd. de programar un ordenador por primera vez!
Fíjese que LIST 2 causará ?.(Pruébelo.)
Con unas pocas excepciones (como :), todas las palabras son independientes, comunicándose con el resto a base de dejar números en la Pila. La Pila es un simple contenedor para mantener números y funciona como una bandeja de entrada, en el sentido de que el número más reciente está siempre arriba.
Cuando introduce 2 LIST, Vd. da instrucciones al ordenador para
Utilice la palabra INDEX (índice) para ver la primera línea de varios bloque de texto. Liste ahora la primera línea de los bloques del 2 al 5 mediante 2 5 INDEX ...
Observemos ahora más aténtamente la Pila. La palabra .S significa imprimir la pila y muestra todos los números en la Pila desde abajo hasta arriba.
Introduzca 2 5 .S para comprobarlo.
Ahora introduzca INDEX para repetir el comando anterior.
Este semáforo funciona a una velocidad fijada por el valor contenido en una ubicación llamada %WAIT (% de espera). Introduzca 2 LIST para ver como %WAIT fue creada con la palabra VARIABLE e inicializada a 100 con la palabra de almacenamiento !.
Confírmelo leyendo el valor con ? introduciendo
%WAIT ?
La palabra de almacenamiento ! simplemente almacena un número en una ubicación. Ahora cambie la espera a un 50 % para conseguir que el semáforo funcione el doble de rápido. Haga esto introduciendo
50 %WAIT ! y TRAFFIC-LIGHT
! toma tanto el número como la ubicación de la Pila. Para recordar la
secuencia, los documentos Forth describen ! como
! ( N L -- ).
Este "comentario de pila" ( N L -- ) recuerda que "! toma la
ubicación L de la Pila y después el número N".
Para INDEX, un comentario de pila apropiado podría ser
INDEX
( BloqueInicial BloqueFinal -- )
Esto termina la primera sección del Kit de Arranque - para la segunda sección, pulse aquí .