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


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


Не могли бы вы попытаться несколько повысить эффективность этого определения, используя стек возвратов?

Слово для проверки недопустимого значения индекса массива в определении чисел одинарной длины будет иметь такую же форму, однако в нем должна быть предусмотрена возможность использования для каждого числа двух байтов. Чтобы обнаружить, что индекс слишком велик или попадает в область отрицательных значений, используется оператор сравнения U

Упражнения

1. Создайте слово для определения массивов чисел двойной длины DARRAY, которое работает так же. как CARRAY и ARRAY. 2. Перепишите определения ARRAY и EARRAY с именами 1ARRAY и 1EARRAY, принимая номер начального элемента равным I. (Помните о необходимости ввести проверку ошибки в EARRAY.) 3. Напишите новые версии слов CARRAY и ARRAY, назвав их OCARRAY и OARRAY, которые инициализируют все элементы массива-ребенка нулями. 4. Напишите определяющее слово PRESERVE, которое должно скомпилировать все слова, находящиеся в массиве, в именованный массив. 5. Модифицируйте слово, определенное в упражнении 4 (назовите его SAVE-TO-RETURN), которое при исполнении возвращало бы в стек числа в первоначальной последовательности. 6. Это полезное, хотя и не очень приятное упражнение. Создайте слово .WORD, производные слова от которого при исполнении просто печатают свое имя. Таким образом, в результате исполнения .WORD .Nasty будет создано слово .Nasty, которое будет печатать на экране "Nasty".

Отвлечение: реализация игры "Жизнь"

Большинство из тех, кто был связан с работой на-компьютерах в 70-х гг., по крайней мере, слышали что-либо об игре "Жизнь", придуманной английским математиком Джоном Конвейем. Статья Мартина Гарднера в рубрике "Математические игры" в журнале Scientific American вызвала повальное увлечение, которое привело, как говорят, к такому расточению машинного времени на ЭВМ, как ни одна другая проблема. В наше время вследствие возросшего искусства программистов эта задача не представляется более бросающей вызов. (Например, с MMSFORTH поставляется программа, занимающая всего 5 блоков.)




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