FORTH имеет свои достоинства на небольших машинах, но есть некоторая кривая обучения.
FORTH имеет много сторон, любую или все из которых можно использовать для встроенной разработки.
Часть борьбы с FORTH связана с дихотомией, которая присутствует.
С одной стороны, маленькие, сырые FORTH прошлого, ye olde Z-80, с резьбовыми интерпретаторами FigForth, ОЧЕНЬ низки с точки зрениясреда, которую они предоставляют вам, разработчик.Они, конечно, более высокого уровня, чем сборка, но, возможно, (в некоторых случаях), чем C.
Например, из коробки FORTH (эти маленькие, старые FORTH, о которых многие думают с небольшими процессорами), не работает.Вам не нужно выделять динамическую память или делать (легкую) арифметику указателей.У него даже нет «структур» как понятия языка.В основном вы можете играть со смещениями через константы.Первоначально, вы не могли даже сделать рекурсию.Возможно, это самое большое ограничение в том, что у него нет реальных типов данных.Он не напечатан вообще, это все числа, которые могут или не могут быть указателями на память, которые могут или не могут быть данными или символами или чем-то еще.
Конечно, в то же время, вы можете получить полную системус ассемблером, редактором и т. д. все в пределах 8K ОЗУ.
Таким образом, да, это более высокий уровень, чем сборка, но ниже, чем C.
Но (иэто большое Но) ...
Хотя он может начинать с низкого уровня, вы, как программист, можете поднять его до любого уровня абстракции, которым вы довольны - вы можете сделать это довольно далекокак вы хотите идти.
Вы хотите структуры?Вы хотите, чтобы куча Malloc от?Вы хотите объектную систему?Все это доступно для здания на фундаменте.
Вам нужна первоклассная поддержка на уровне языка для вашей маленькой системы записи на базе ISAM?Легко.
Рассмотрим Common Lisp.Две из его самых мощных функций - «Макросы» и «Считыватель», которые дают вам возможность преобразовывать произвольный текст в код, который затем компилируется.
FORTH обладает той же способностью, только идет еще дальше.В старых FORTH вы даже имеете доступ к самому компилятору, а не только к входу компилятора.Многопоточные интерпретаторы чертовски просты и легко модифицируемы.У вас есть такой «сырой» доступ к образу памяти, что вы можете буквально делать все, что захотите - все из самой системы FORTH.
Вот как FORTH могут легко «перенести себя» на другие архитектуры, как они могутоптимизировать конкретные структуры данных.Многие старшие ФОРТЫ являются многопоточными переводчиками, но нет причин для этого.Вы можете скомпилировать FORTH в чистый машинный код (т.е. вообще без интерпретатора).
Конечно, на современных «микро» контроллерах вы, вероятно, можете просто перенести всю среду разработки на устройство.Никогда не копируйте изображение по проводам снова (пока вы, конечно, не создадите его резервную копию).
Все это, конечно, требует работы.Может быть, слишком много работы, решать дизайнеру / программисту.Это примитивный инструментарий, который можно использовать для создания очень мощных вещей.