Цитата(SBE @ Nov 12 2012, 22:23)

Мы не пытались особо расширять надстройками, во первых за неимением у нас таковых готовых, а во вторых потому, что каждая обертка, которая будет обеспечивать сколь нибудь более привычный вид формул и т.п., будет раздувать код и, главное, снижать производительность (там и так неторопливо считается из-за интерпретатора). Если это конечно не препроцессор. И так выбрасывали плавающую точку из-за размера и скорости (обычное дело для МК).
Код конечно, может раздуваться, т.к. те же стратегии вычислений на стеке бывают разные, для получения одного и того же результата.
но сами обёртки- это, можно представить, как "обычные" небольшие парсеры для перевода например формул из инфикса в постфикс. Но с вычислениями в контроллерах всегда обращались "бережно" и плавучку зачастую выбрасывали (хотя есть и реализации плавучки, на стековой арифметике)
Цитата(SBE @ Nov 12 2012, 22:23)

Тут дело не в заумной математике и сложных алгоритмах. А в том, что даже простое выражение с несколькими аргументами, на форте выглядит абракадаброй, густо сдобренной неочевидными стековыми операциями. А уж если там массивы... Посмотрите как это выглядит в исходниках той же ffl, когда справа в комментариях короткая понятная нотация привычного вида, а справа текст форт на несколько строк.
Это правда, но не забываем, что привычный для наших глаз код, пройдёт через "жернова" компилятора и устроит ли конечный вариант
по эффективности ещё неизвестно. (@"Вам ехать, или шашечки") Хотя с Фортом, на не стековой архитектуре потери могут оказаться
катастрофическими и не пригодными для "реального" использования, но проверить какие то "задумки" всё же можно на рабочей библиотеке.
а дальше принять решение по необходимости оптимизации.
(из своей практики, коллега писал фильтрацию на ассемблере, но когда увидел возможность быстро написать Фильтр для неторопливой
задачи на Форте с использованием локальных переменных, то неприменуемо им воспользовался. Си исторически не использовался для
довольно слабого процессора.)
Цитата(SBE @ Nov 12 2012, 22:23)

Это может не удачный пример, но проблему манипуляции на стеке с локальными переменными, когда их много, и неочевидности записи выражений он высвечивает. Тоже и с массивами, в чистом виде адресная арифметика.
Вполне удачный, только не известно удачнее ли решение (эффективнее) на Форте окажется с использованием локальных переменных
или придётся обращаться к ассемблеру для его оптимизации при использовании регистровой архитектуры. По ресурсам может быть
оно только и выиграет. При желании можно привлечь "старшего брата" (ака С), для генерации нужного математического кода (хотя это может и выглядеть некошерно)
Цитата(SBE @ Nov 12 2012, 22:23)

Это действительно много, у нас проекты были такого порядка. Про то и речь, что для меньшего объема экономии кода нет, а большой попробуй напиши на форте. Лучше сэкономленное время потратить на раздумья по правильной структуре и алгоритмах, можно выиграть больше

Может стоило не только решать "насущные" задачи, но и подумать как с помощью сильных сторон Форта подстроить синтаксис/семантику/
генерацию кода для уменьшения, хотя бы процесса "прототипирования"
Цитата(SBE @ Nov 12 2012, 22:23)

А для Forth с его @!+"<>? и т.п. его хватит?
Не понял вопрос, например в 16бит (ячейку) утрабуется 3символа и останется 1бит (например как признак ограничитель длины строки)
В две 16битных ячейки уже 6символов и.т.д. Для многих команд Форта может хватить одой ячейки (16 бит)
Цитата(SBE @ Nov 12 2012, 22:23)

Мы такой вариант и использовали, кросс-компиляция по делу вещь нужная. Я просто пытался донести несерьезность доводов, что компиляция и сборка совсем не нужны для форта, и это так хорошо и быстро.
Конечно нужна если задача плохо решается имеющимися средствами,а что то менять для её "убыстрения" необходимио. Но, кроме
оптимзации, можно пойти по современному подходу "взять контроллер помощнее" или через профилирование набрать статистику
по "узким" местам, могут быть использованы и другие варианты, вплоть до покупки профессиональных средств или введением
в свой генератор кода небольших правил оптимизации целевого кода. (всё зависит от "кривизны" рук пользователя)
Цитата(SBE @ Nov 12 2012, 22:23)

Я искал Форт-систему под свои задачи в конце 90-х, ничего достойного не всплыло. Потом стало не актуально, С/С++ взамен. Тем более, что кое-какое наследство от Форта осталось.
А с чем сравнивать?
За неимением профессональных средств сравнивать можно только любительские или полупрофессиональные. Для контроллеров
уровень тех и других может оказаться недостаточным. (для LPC есть прошивка без компиляции от MPE Ltd) А так этот вопрос
требует отдельного исследования, хотя достойные варианты для рассмотрения и начальной работы существуют.
Допилить, например, ff303 (в моём случае) вполне возможно, но выбор конкретного Форта дело сугубо индивидуальное. А так как для
PC их очень много, то какие то решения можно и применить для контроллеров (для контроллеров, тоже не малое количество)
Цитата(ReAl @ Nov 12 2012, 22:49)

RADIX50 это не пять бит на симовл (что невыгодно, пропадает один бит в 16-битном слове). Там 050 (т.е. 40 в десятичной системе счисления) символов кодируется, 40*40*40 = 64000, до 65535 немного пропадает. Но кодирование требует умножения (а раскодирование деления, но если только новые имена кодировать и потом сравнивать со словарными статьями, то раскодировать не надо). Но все равно набор символов сильно ограничен.
Когда то разбирался с этим вопросом, но уже подзабыл

Символов да ограничено, но в каких то вариантах должно хватить и возможно
ещё какие то "извраты" возможны.