El mundo de la programación se mueve muchas veces por extrañas modas. Por ejemplo, hace unos años comenzó el auge de Java y por un tiempo era el lenguaje más usado en el planeta. Pero ahora está en relativa decadencia pues han surgido otros lenguajes que quizás prometen más o bien, son más fáciles de usar, o quizás contienen más poder de expresividad. Por ejemplo, ahora todos hablan de Python o Ruby on Rails. Pero… ¿podrán mantenerse en el gusto de los desarrolladores?

Evidentemente algunos lenguajes de programación tienen historia y un largo bagaje de desarrollo, pero por alguna razón se usan menos. Uno de ellos es Forth, o FORTH, el cual es un lenguaje de programación cuyos creadores son Charles H. Moore y Elizabeth Rather (circa 1965-1970), que nació en el National Radio Astronomy Observatory de Kitt Peak, Arizona.

 

Charles Moore

Su nombre es en realidad contracción de la palabra inglesa fourth, pues sus creadores le consideraban destinado a la cuarta generación de computadoras. La primera edición del lenguaje fue escrita para una máquina IBM 1130, que sólo permitía nombres con una longitud no mayor de cinco letras… y quizás por eso el nombre de FORTH terminó por arraigarse. Forth es deletreado a veces con todas las letras en mayúsculas siguiendo el uso acostumbrado durante los primeros años, aunque el nombre no es acrónimo de nada.

Inicialmente Forth se usó para una aplicación muy concreta: la astronomía (cálculo de trayectorias de cuerpos en órbita, cromatografías, análisis de espectros de emisión), y evolucionó hasta ser aplicable en otros ambientes: cálculos de probabilidad, bases de datos, análisis estadísticos, financieros, etcétera. Tal vez el gran éxito de Forth fue un programa para la adquisición automática y contínua de datos, que ha descubierto al menos la mitad de los cúmulos interestelares conocidos en la actualidad.

Forth es un lenguaje con procedimientos, estructurado, imperativo, basado fuertemente en una estructura de datos: el stack (o pila). Los procedimientos en Forth se llaman “palabras”, que forman -por decirlo de alguna manera- un vocabulario de ideas para resolver en un problema. Tiene la virtud de trabajar de forma interactiva (como si fuese un intérprete), pero también puede compilarse. De hecho:

  • Forth puede compilarse a sí mismo en un nuevo compilador
  • usa RPN (reverse polish notation), como las calculadoras HP
  • Verificación de sintaxis como en los intérpretes de BASIC
  • Basado en hilos de ejecución
  • Muy eficiente
  • Se puede depurar a sí mismo
  • Extensible

Y aunque Forth no hace demasiados aspavientos sobre su presencia, se usa en bootloaders (cargadores de sistemas operativos), como el de Open Firmware, aplicaciones particulares para problemas del espacio, así como en algunos sistemas embebidos. El proyecto GNU sobre Forth se mantiene aún activo y el estándar -definido en el 1994- está siendo sometido a revisión, para crear uno nuevo, moderno, para las necesidades actuales.

Yo creo que hay que darle una revisada a lo que puede hacer Forth. No es difícil de aprender y de alguna manera tiene estructuras que otros lenguajes imperativos esconden. Es un lenguaje con muchas implementaciones gratuitas, las cuales pueden ser descargadas de aquí.

Referencias:

Forth Interested Group
Charles Moore (página web)