gudleifr писал(а):
А что будет, если "1. 2. ... 28. + ... +"?
Ошибка будет - "исчерпание стека". Все числа лежат на стеке с плавающей точкой, а + работает с целочисленным. Поэтому если "Никто даже и не заметил, что вещественные операции были изъяты из стека и перенесены в собственный "вычислитель", то это только в том случае, если этот самый Никто с вещественными числами работать и не пытался.
gudleifr писал(а):
Просто Вы привыкли считать числа "естественным типом", а сложение "естественной процедурой".
В то время как из моих сообщений можно увидеть явно противоположное
Я и обращаю внимание на то, что + является точно таким же словом, как и все остальные слова Форта. Он не имеет никакого приоритета, не имеет особенного формата словарной статьи и никак не распознается как "оператор". Поэтому фразу "накопление вводимых параметров до ввода обрабатывающей их команды, а не DUP-ы и +-ы." я и предлагаю переделать следующим образом. Представим, что обрабатывающая команда - это слово +. Тогда получается, что у нас есть "накопление вводимых параметров до ввода команды + , а не DUP-ы и +-ы. ". Если еще почистить текст, то останется, что Форту "важен +, а не +".
gudleifr писал(а):
Если угодно, нам важно только, что не надо передавать параметры, т.к. они копятся в некой статической переменной (стеке) и эта переменная подобна стеку (т.е. не переполнится и не потрет ранее введенное).
В принципе эта статическая переменная может иметь любую удобную форму.
Ну вот она имеет форму стека данных. Как-то ведь надо эти параметры передавать. Для стека данных реализован набор слов, которые уже можно считать визитной карточкой Форта. Это не догма, а реализованный механизм. Реализованный потому, что без него все равно придется делать что-то "подобное стеку".
gudleifr писал(а):
Так что Forth, в котором числовые выражения не помещаются в стек, а обсчитываются где-то в специально предназначенном месте, вполне возможен.
Код:
[ HEX DECIMAL ]
Это пример допустимой программы на Форте, где все слова работают исключительно с глобальными переменными. Есть даже набор таких "поражающих своей дуростью"
кросс-компиляторов, у которых базовые слова Форта переопределены в новом словаре так, что + ничего не делает со стеком данных, зато пишет в образ памяти целевого процессора соответствующую команду. Т.е. модифицирует глобальные объекты, а не стек.