Retro es un lenguaje de programación cuyas bases nos remiten a Forth. El autor lo ha diseñado de manera que sea pequeño y fácil de aprender. Se puede modificar además para cubrir necesidades específicas de programación. El sistema lleva ya sus años y se ha refinado a través del uso continuo y de la pequeña pero fiel comunidad que lo apoya. Retro lleva más de diez años de haber sido lanzado (2001) y ha pasado por siete revisiones importantes. Durante ese tiempo, ha evolucionado de ser una implementación que corre en máquinas x86 de 32 bits hasta poder correr en una máquina virtual llamada Ngaro.
El autor indica que la revisión 11.x de Retro es ya estable. Se han hecho cambios y mejoras pequeñas. Hoy en día las revisiones son poco frecuentes y sin embargo, se espera que sea lo suficientemente estable incluso para soportar sin problemas el código de las versiones pasadas. Sin embargo, el autor apela a que se reporten los “bugs” y errores lo antes posible.
- Retro ‘como se dijo ya’ tiene sus raíces en Forth, que es un lenguaje basado en el stack (de hecho, la mayoría de los lenguajes usan un stack para propósitos internos), pero en el caso de Retro (y Forth), el stack es manipulable. Por otra parte, la programación se hace a partir de crear “palabras” de un diccionario, que son el equivalente a las funciones y procedimientos de otros. Por ejemplo, se puede crear una palabra, “foo”, la cual haga una suma trivial:
- foo 1 2 + putn;
lo cual significa que la nueva función se llama foo y lo que hace es poner dos números en el stack, sumarlos, y entregar el resultado (putn es una función de Retro que toma un número del stack y lo despliega). Nótese que al llamar a foo, lo que ocurre es que se toman los dos valores, que pasan al stack. Se observa el operador + y se hace la suma, sacando esos dos valores del stack y poniendo el resultado en el stack de nuevo. Entonces putn es quien despliega el resultado.
Por ejemplo, si se quiere poner un valor en el stack, simplemente escribimos el valor:
10
y listo.
Nótese que las operaciones en Retro funcionan en RPN (Reverse Polish Notation), que es la manera en como por ejemplo, las calculadoras HP han funcionado por muchos años, donde se ponen los operandos y el operador. Un ejercicio típico en este sentido es escribir un programa que tome una expresión aritmética, como (3+4) * (6-7) y la convierta a RPN. Es uno de esas tareas que se dejan en los primeros cursos de programación.
Interesante es saber que Retro es un lenguaje de código abierto y que además. y ha sido portado para correr en iOS, el cual cuesta 99 centavos de dólar..
Referencias: