Forth имеет сильную поддержку среди разработчиков встраиваемых систем. И для этого есть несколько причин. Так, практически любой компьютер или любое более-менее комплексное вычислительное устройство может работать с Forth. Среди них можно отметить даже очень маленькие процессоры, которые были бы плохими кандидатами для запуска программ, написанных на языке C.

По своей сути, Forth очень прост: спарсить слово, посмотреть слово в словаре. Словарь либо указывает на некоторый код на машинном языке, либо на другие слова языка Forth. Аргументы и другие элементы, как правило, присутствуют в стеке. Большинство Forth-конструкций более высокого уровня основаны на базовых конструкциях Forth. Так что если ваша система Forth достигает определенного уровня зрелости, она может внезапно стать очень мощным инструментом программирования, конечно, если у вас есть достаточно памяти, чтобы вместить все эти определения.
Если вы хотите поэкспериментировать с Forth, вам, вероятно, захочется начать изучать его на ПК. Для этого существуют несколько сред, например, gForth (с GNU). Но иногда вовсе не хочется устанавливать какое-то сложное и непонятное программное обеспечение просто ради того, чтобы попробовать. Но сегодня появляется все больше и больше приложений, которые запускаются прямо в браузере, и Forth теперь не исключение. В конце концов, данная система достаточно проста, поэтому написание интерпретатора Forth на javascript должно быть довольно простым занятием. И действительно, проект jsForth (код на github.com/brendanator/jsForth, попробовать в действии на brendanator.github.io/jsForth) дает полноценную возможность открыть веб-браузер и использовать Forth.
Проект jsForth реализует полный базовый стандарт ANS. Здесь реализованы следующие наборы слов: ключевые слова, дополнительные слова ядра, и слова расширения ядра. Тесты ANS Forth могут быть запущены с помощью npm run test или в интерпретаторе с использованием следующего кода:
include test/verbose-tester.fth
include https://raw.githubusercontent.com/gerryjackson/forth2012-test-suite/master/src/core.fr
Все стандартные потоковые модели требуют call или jump для выполнения следующей инструкции. В javascript обе переводятся в функции, вызываемые в хвостовой позиции. Без оптимизации хвостовой рекурсии это приведет к переполнению стека. Поэтому jsForth использует «трамплин» для выполнения инструкций.
Язык Forth может оказаться сложным для понимания, поэтому после его изучения следует хорошенько передохнуть, например, посмотреть с детьми мультики. Посмотреть и скачать развивающие мультики можно здесь:

© digitrode.ru