Ффууух! А я-то думаю, где там скачут Ваши мысли! Вы же перепутали автомат с магазинной памятью (т.е стеком), который годится для разбора языков с контекстно-свободной грамматикой, и стековую машину, работающую в рантайме. Дейкстра не родил Форт, и стек был известен еще до Мура. Просто в процессе разбора выражений языка приходится запоминать какие-то части выражения для последующей компоновки. Для разбора c = a + b последовательность операций процессора не соответствует последовательности символов. Надо как раз по-фортовски:
A @
B @
+
C !
Просто Форт ничего не автоматизирует и оставляет эту последовательность на усмотрение программиста. А компилятор Си вынужден, видя c, а после него =, уже начинать что-то компоновать, потому что лексемы-то идут, а код пока создать нельзя. Ну и получается, страшно сказать, СТЕК
Только это стек компилятора, куда заталкиваются операнды и операции, которые пока еще не могут быть скомпилированы. Это не стек программы, которую этот компилятор создает (этот стек тоже есть, и через него передаются параметры). А у Форта стек относится как раз к уже работающей программе. И через него тоже передаются параметры. Мур создал язык, в котором не надо заботиться о совместном существовании параметров подпрограммы и адреса возврата, поскольку параметры лежат совершенно отдельно.
Резюмируя: Вы открыли для себя процесс компиляции для грамматик, более сложных, чем регулярная. Этот компилятор может быть написан и на Форте, пользуясь его стеком как готовым инструментом. Да, стек для этого процесса нужен (хотя, afair, есть и альтернативные варианты, но это уже высший пилотаж и я не готов навскидку дать какой-то обзор). Но не отбирайте этот стек в эксклюзивное пользование
Он нужен еще и для других вещей.