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


Глава 14. Память Форта. Словари и контекстные словари - часть 24


С точки зрения приоритета поиска здесь создается эффект помещения каждой функции "в верхней части словаря". Это существенно менее важно для Форта, который при компиляции использует много маршрутов поиска. Заметим, что исполнение не ускорится, так как оно не включает в себя поисков в словаре (за исключением нахождения первого слова, чтобы начать исполнение программы).

Еще одним преимуществом нескольких контекстных словарей является то, что не все слова в конкретном словаре должны быть описаны сразу. Вы можете использовать (имя) DEFINITIONS поочередно в различных местах программы, чтобы описать порядок обхода родственных слов (объединив их в одном контекстном словаре). Это может быть удобно для последующего расширения набора команд в словаре.

Но чрезмерное увлечение контекстными словарями может привести к вредным привычкам просто потому, что добавление слов в словарь когда попало не представляется разумным. Намного лучше держать контекстный словарь в одном месте (непрерывный массив блоков), так чтобы с ним можно было работать как с единым логическим блоком. Вашу программу будет легче читать и поддерживать.

Вот пример удобного использования контекстного словаря при создании процедуры "help", которая переопределяет слова Форта в словаре с именем HELPS. Новые операторы могут отобразить краткое описание функций слов словаря Форта. Это может показаться теперь тривиальным, но представьте, что вы имели бы это, когда мы только начали изучать Форт.

Сначала создадим словарь HELPS: VOCABULARY HELPS HELPS DEFINITIONS Теперь введем несколько слов в словарь "HELPS": : DUP ." = stack (n - n n) " CR ; : DROP ." = stack (n - ) " CR ; и т.д. Когда вы кончили, опишите слово HELP, которое используется следующим образом: HELP (name) . что выдает описание, содержащееся в слове (name). Для того чтобы слово HELP было найдено в любом случае, оно должно быть описано, как слово словаря FORTH. Таким образом, его описание должно начинаться с FORTH DEFINITIONS HELP могло бы быть описано как : HELP [COMPILE] HELPS FIND EXECUTE [COMPILE] FORTH ;




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



Книжный магазин