Язык программирования Форт


Глава 11. Создание слов-определителей - часть 2


Отношение между словами можно сделать более ясным, если назвать определяющие слова словами-родителями, а порожденные ими слова словами-детьми. Все слова-дети общего слова-родителя ведут себя сходным образом, но все же отлично от других слов-детей, родных им "по крови". Общее в поведении всех "единокровных" слов-детей является следствием того, что они происходят от одного "родителя". Различия между "детьми" определяются тем, что при создании в них были скомпилированы различные значения. Чтобы понять, почему слова-дети ведут себя так или иначе, вы должны проанализировать определение слов-родителей и их собственные определения.

Если описать "генеалогию" слов, то мы сможем выделить три стадии, которые в литературе по языку Форт называют ходом событий. Ход событий - это то, что происходит, когда: 1. Рождается слово-родитель (компиляция определяющего слова). 2. Родитель активен и порождает (исполнение определяющего слова слово-ребенка и компиляция слова-ребенка) 3. Ребенок действует самостоятельно (исполнение слова-ребенка)

Причина того, что мы выделяем три, а не четыре стадии, очень простая: когда определяющее слово исполняется, оно компилирует слово-ребенок. Поэтому то, что кажется двумя стадиями, на самом деле это одно действие. Общее в поведении слов-детей, происходящих от одного "родителя", предписывается им на первой стадии при определении слова-родителя. Слова, определенные с помощью, похожи по своему поведению из-за того способа, которым определено само это слово, а одинаково они исполняются потому, что одно из действий определяющего слова - сделать так, чтобы "дети" вели себя одинаково. Это легче всего проследить на примере слов-детей, происходящих от VARIABLE и CONSTANT.

Все переменные кладут в стек адрес, по которому записано их содержимое, в то время как константы выдают в стек свои значения. Различие их действия обусловлено способом определения слов VARIABLE и CONSTANT. Различия в поведении слов-детей закладываются на стадии 2 при исполнении определяющего слова и компиляции слова-ребенка.


- Начало -  - Назад -  - Вперед -