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


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


После извлечения адреса из стека возвратов его нужно увеличить на 2, чтобы указать на следующий элемент ALINE, при этом в него будет скомпилировано число 17, которое надо извлечь. Хотя в этом примере мы обошлись обычными словами для стековых манипуляций, в случае, если в словах-детях нужно запомнить несколько чисел или байтов, могут потребоваться некоторые изменения технических приемов.

Лучше всего можно оценить мощь определяющих слов из практических примеров. Из приведенных ниже упражнений вы сможете извлечь еще некоторые идеи.

Упражнения

1. Определите слово 2CONSTANT, которое должно работать так же, как и CONSTANT, но с двойными числами. 2. Определите слово MAKEDATE (создать_дату), для которого в стеке должны находиться числа: месяц, день и год, чтобы оно при исполнении выдавало дату с косой чертой в качестве разделителя. Например, 12 7 41 MAKEDATE PEARLHARBOR должно создать слово PEARLHARBOR, которое при исполнении должно выдавать дату в виде 12/07/41. (Вспомните вывод по шаблону из гл.5.) 3. Определите определяющее слово COUNTEB (счетчик), которое использует число из стека, чтобы инициализировать порождаемые им слова. Когда исполняются слова-дети COUNTER, то при очередном исполнении их содержимое должно изменяться таким образом, что 0 COUNTER COUNTIT должно создать COUNTIT, которое при исполнении будет последовательно изменять свое содержимое: 1, 2, 3 и т.д. Как можно извлечь содержимое COUNTIT ? 4. Как можно использовать слова, производные от COUNTER, для подсчета частоты использования определенных слов в программе? 5. Для регистрации цвета фотографических красителей экспериментально определяют насыщенность составляющих цветов : голубого, желтого и пурпурного, значения каждой из которых могут изменяться в диапазоне от 0 до 255. Определите слово COLOR, которое берет из стека величины насыщенности цветов, а порождаемые им слова должны выдавать насыщенность каждого из трех цветов в процентах. Так, например, 128 128 128 COLOR 1DYE будет создавать слово IDYE, которое при исполнении должно вывести "50% голубого, 50% желтого, 50% пурпурного".


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