Cuarto (lenguaje de programación)


Forth es un lenguaje de programación procedimental orientado a la pila y un entorno interactivo diseñado por Charles H. "Chuck" Moore y utilizado por primera vez por otros programadores en 1970. Aunque no es un acrónimo , el nombre del lenguaje en sus primeros años a menudo se deletreaba en mayúsculas. como FORTH , pero Forth es más común.

Forth combina un compilador con un shell de comandos integrado, donde el usuario interactúa a través de subrutinas llamadas palabras . Las palabras se pueden definir, probar, redefinir y depurar sin volver a compilar o reiniciar todo el programa. Todos los elementos sintácticos, incluidas las variables y los operadores básicos, se definen como palabras. Se utiliza una pila para pasar parámetros entre palabras, lo que lleva a un estilo de notación polaca inversa .

Durante gran parte de la existencia de Forth, la técnica estándar consistía en compilar en código de subprocesos , que puede interpretarse más rápido que el código de bytes . Uno de los primeros beneficios de Forth fue el tamaño: un entorno de desarrollo completo, incluidos los programas de compilador, editor y usuario, podía caber en la memoria en un sistema de 8 bits o similarmente limitado. Ya no está limitado por el espacio, existen implementaciones modernas que generan código de máquina optimizado como otros compiladores de lenguaje.

Forth se utiliza en el cargador de arranque Open Firmware , en aplicaciones espaciales [1] como la nave espacial Philae , [2] [3] y en otros sistemas integrados que implican interacción con hardware. La relativa simplicidad de crear un sistema Forth básico ha dado lugar a muchas variantes personales y patentadas, como el Forth personalizado que se usó para implementar el videojuego Starflight de Electronic Arts de 1986, el más vendido . [4] La implementación del software libre Gforth se mantiene activamente, al igual que varios sistemas con soporte comercial.

Más tarde, Moore desarrolló una serie de microprocesadores para ejecutar directamente código compilado similar a Forth y experimentó con lenguajes más pequeños basados ​​en conceptos de Forth, incluidos cmForth y colorForth .

Forth tiene un nicho en aplicaciones astronómicas y espaciales [5] , así como una historia en sistemas integrados . Las ROM de arranque de Open Firmware utilizadas por Apple , IBM , Sun y OLPC XO-1 contienen un entorno Forth.