Учебное пособие по языку ФОРТ
- Автор: ИТФ «Технофорт»
- Жанр: Современные российские издания / Литература ХX века (эпоха Социальных революций) / Программирование: прочее / Forth
- Дата выхода: 1993
Читать книгу "Учебное пособие по языку ФОРТ"
16. Косвенное исполнение
Итак, введенное слово ищется в контекстном словаре в обратном направлении, начиная с самого последнего введенного слова. Если слово найдено, оно исполняется. Для реализации каждого из этих двух действий по отдельности служат следующие слова:
' имя ... --> ... addr
Слово "имя" должно быть уже определено. Слово "'" (апостроф) кладет на стек адрес поля кода слова "имя".
EXECUTE ... addr --> ...
Адрес поля кода некоторого слова снимается со стека, и это слово исполняется. Таким образом, текст
' имя EXECUTE
просто эквивалентен тексту "имя".
Предлагаемое средство - это способ выполнять слова не непосредственно, вводя их имена, а косвенно. Заводится какая-нибудь переменная, например "УКАЗАТЕЛЬ", в которой с помощью апострофа можно запомнить адрес поля кода некоторого слова и в дальнейшем даже менять ее содержимое; а исполнение слова задается текстом:
УКАЗАТЕЛЬ @ EXECUTE
Подменяя адреса поля кода, можно изменить выполняемые действия некоторого слова уже после того, как оно скомпилировано. Обычно на этом принципе основаны определения слов для интерфейса с внешними устройствами. Только учтите, что слово "EXECUTE" не проверяет, допустим ли заданный на стеке адрес. А неверный адрес почти всегда влечет нарушение работы системы.
Если надо указать внутри определения через ":", что действие апострофа должно относиться к следующему слову в теле определения, то используют слово "[']". Иначе во время исполнения того определенного через двоеточие слова апостроф 'займется' очередным словом из входного потока.