mOleg писал(а):
Да, согласен, но при этом имя создавать не обязательно. Т.е. имеется компиляция - наработка кода и данных, имеется сохранение указателя куда-то, при этом код и\или данные не обязаны быть связынными с каким либо именем.
mOleg писал(а):
Более того, если под компиляцией понимать еще и подготовку отдельного исполнимого файла, то имена могут еще и удаляться (все, или почти все).
Ну, если иметь в виду "классическую компиляцию", то там имена вырезаются искусственно: они все присутствуют на этапе компиляции, основные на этапе связывания и иногда доживают до отладки.
Аналогично, и в FORTH - использование псевдоимен - "параметров" (адресов) - только некоторая оптимизация, не избавляющая программиста "иметь имя в голове". (Можно говорить об использовании упрощенной версии FIND, не нуждающейся в честном поиске, или о включении безымянного кода в более крупное слово, или даже о псевдостатье, к которой обращаются по адресу точки входа, но "эта штука всегда имеет имя").
Полное удаление имен в исполняемом файле? Ну, одно-то имя остается - имя файла. Просто мы теряем возможность доступа к более мелким "словам".
mOleg писал(а):
Смысл содержит любое действие, которое нельзя опустить без ущерба для проекта, имхо, так.
Смысл-то есть, но к компиляции он имеет опосредованное отношение. Например, мне надо записать в память байт, а глупый процессор может адресовать только слова и дополняет мой байт нулями. Я же не приписываю эту заслугу себе. Я, наоборот, ругаю глупую железяку.
P.S. Ибо СЛОВАРЬ - есть программная реализация отношения "имя-действие". Возможность что-то там "доразместить" - лишь оптимизационное хранение в СЛОВАРЕ части ЗНАЧЕНИЯ (например хранение там прочтенного WORD слова). Потребность что-то там "выравнить" - лишь техническая подробность реализации.
Имя - есть прочтенное из ПОТОКА слово (например, "слово, завершающееся пробелом", или "wnd-msg-wpar-lpar", или константа, порождающая выбор CASE, или просто индекс)... Все зависит от вида ПОТОКА.
Действие - адрес передачи управления, или ссылка на сложный объект, или запись в БД... Зависит от того, что требуется процедуре ВЫПОЛНИТЬ.
В любом случае, т.к. FORTH не оперирует понятием данных, позволяет понимать "имя" и "действие" так, как требует задача.