gudleifr писал(а):
Танк (Башня, Влево, 20)
А не один хрен?
2 момента.
1. Видели ли вы в современных Си-(С#, Java)
короткие имена? Много таких? Современные имена IMHO ооочень длинные...
2. Передача параметров. В Си сначала значения пакуются в параметры, чтобы передать их через точку вызова, потом они, если параметры качественные, а не количественные(множества, коды режимов и т.п.), разбираются - проходят через проверки - серии вложенных
if или
switch/case, чтобы выбрать нужный обработчик(ветвь алгоритма). В Форте довольно просто сразу установить нужный обработчик и сократить, таким образом, дополнительные проверки. Даже если нужно позднее связывание - обработчик будет определен позже, IMHO, часто все же можно сократить подобные проверки.
gudleifr писал(а):
Возможно ли так же красиво писать большие программы - не известно.
С этим еще продолжаю играться. На данный момент стиль программирования уже заметно изменился, теперь нарабатываю опыт.
Уже пришел к тому, что даже разрекламированный
git(система контроля версий) - непоследовательный и принципиально существенно ограничен. А переделывать его никто не будет - "поддержка проектов"!
Так что,
gudleifr писал(а):
красиво писать большие программы
вообще мало кто может!
Мы не одиноки! Но это не повод не пробовать!
gudleifr писал(а):
К тому же речь в теме идет не красотах проблемно-ориентированных языков, а о большом количестве интерфейсов, которые вынужден поддерживать FORTH, разрастаясь.
этот вопрос поднимется еще не раз. Пока я вижу решение - дополнительные базы данных(или даже знаний) об оборудовании и его программировании(это отдельная хорошая тема). Без этого красота маловероятна...
gudleifr писал(а):
"усложнение дерева выбора нужного алгоритма" и "Решения принимает словарь" - это как бы одно и то же.
Принципиально разные вещи!
Усложнение дерева - когда для выбора необходимой ветки алгоритма нужно пройти через несколько проверок условий(чуть выше в общих словах пример ситуации, могу поискать точный код)
Решение принимает словарь - использование встроенного в Форт словаря - такого большого
CASE на все слова. Выбор другого словаря можно рассматривать, как здоровенный такой
if, который меняет набор ключей встроенного
CASE !
gudleifr писал(а):
Но какое это имеет отношение к (2) - там зависимое от ОС "дерево" спрятано и решения принимает "даже не словарь"?
вы правы, никакого, про словарь - это к части
in4 писал(а):
По-Фортовски - IMHO - добавление слоя лесикона и нескольких новых (соизмеримых по сложности со старыми) компонентов.
- более Фортовское решение этой же задачи. Вместо того, чтобы прятать внутрь интерпретатора - разделить по лексиконам.
gudleifr писал(а):
И к (3) - там "дерево" искусственно обрезается до необходимого минимума?
Вроде не обрезается, просто анализируется на этапе интерпретации/компиляции, а не на этапе исполнения (в одном из вариантов реализации. Другой вариант, тоже прятать в интерпретатор == добавить сложность с отслеживанием режимов работы, в вашем примере - будут дополнительные проверки - будем выводить в текст или в графику).