El origen de la lengua Forth
Forth no se origina a partir de otros lenguajes de programación existentes, por lo que su apariencia y características internas son especiales para nuevos usuarios. Pero la simplicidad, el alto grado de modularidad y las características interactivas de Forth pueden compensar la falta de familiaridad de los principiantes, haciendo que Forth sea muy fácil de aprender y usar. Un nuevo programador generalmente necesita algo de tiempo para dominar el enorme conjunto de comandos de Forth. Después de aproximadamente un mes de uso completo, el programador puede comprender todo su mecanismo de trabajo interno y aprender más que los sistemas operativos y compiladores tradicionales.
La mayor diferencia entre Forth y los lenguajes tradicionales es su escalabilidad. El proceso de programación de Forth consiste en definir nuevas palabras, y las palabras son en realidad nuevos comandos del lenguaje. Las palabras se pueden definir utilizando una serie de palabras previamente definidas, un proceso similar al de educar a los niños: siempre enseñamos a los niños nuevos conceptos utilizando conceptos que han entendido previamente, y estas palabras se denominan "definiciones superiores". Del mismo modo, se pueden definir nuevas palabras en código ensamblador, ya que la mayoría de las implementaciones de Forth incluyen el ensamblador del procesador host, y estas palabras se denominan palabras CÓDIGO.
El resultado de la escalabilidad es que cuando desarrollamos una aplicación, también desarrollamos indirectamente un "lenguaje orientado a aplicaciones" especial para este tipo de aplicación, que puede usarse o modificarse. Posteriormente se usó en aplicaciones similares. .
La extensibilidad de Forth no se trata solo de agregar nuevos comandos al lenguaje en sí, por lo que no equipare las definiciones con las definiciones de funciones y procedimientos del lenguaje tradicional de alto nivel. La extensibilidad también permite la creación de una palabra que puede definir otras palabras. Estas palabras se denominan "palabras definitorias". Al crear una palabra definida de este tipo, el programador puede especificar un comportamiento especial para la palabra que crea en tiempo de compilación, tiempo de ejecución o ambos. Esta capacidad nos permite definir tipos de datos especiales y ejercer un control total sobre su comportamiento y estructura. Y debido a que el comportamiento en tiempo de ejecución de dichas palabras se puede definir en un lenguaje de alto nivel o en un lenguaje ensamblador, las palabras creadas a partir de palabras definidas tendrán el mismo rendimiento que otras palabras Forth. El sistema también nos permite agregar una nueva "directiva de compilación" para implementar tipos especiales de bucles u otras estructuras de control, como la estructura CASE.