Способ мышления-Форт



Глава 7. Работа с данными: стеки и состояния - часть 9


Под значение кода может быть использовано любое число, кроме нуля.

ШИКАРНЫЙ СТЕК ВОЗВРАТОВ ~~~~~~~~~~~~~~~~~~~~~~~ А как насчет использования стека возвратов для хранения временных аргументов? Хороший ли это стиль? Некоторые люди с большой осторожностью используют этот стек. Однако стек возвратов предлагает самое простое разрешение некоторым неприятным стековым ситуациям. Посмотрите на определение CMOVE> из предыдущего раздела. Если вы решаете использовать стек возвратов для этого, то помните, что Вы при этом используете компонент Форта, предназначенный для иных целей. (Смотрите раздел под названием "Совместное использование компонентов" далее в этой главе.) Вот некоторые рекомендации о том, как не попасться на собственный крючок:

------------------------------------------------------------ СОВЕТ 1. Операции со стеком возвратов должны располагаться симметрично. 2. Они должны располагаться симметрично при любых направлениях передачи управления. 3. При факторизации определений следите, чтобы не получилось так, что одна часть разбиения содержит один оператор, работающий со стеком возвратов, а другая часть - его ответный оператор. 4. При использовании внутри цикла DO LOOP такие операторы должны использоваться симметрично внутри цикла, а слово I работает неверно в окружении >R и R>. ------------------------------------------------------------

Для каждого из слов >R должно присутствовать R> внутри того же определения. Иногда операторы кажутся расположенными симметрично, но из-за извилистого пути передачи управления таковыми не являются. К примеру:

... BEGIN ... >R ... WHILE ... R> ... REPEAT - 214 -

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

ПРОБЛЕМА ПЕРЕМЕННЫХ ~~~~~~~~~~~~~~~~~~~ Хотя немедленно интересующие нас данные мы держим на стеке, но в то же время мы зависим и от большого количества информации, заключенной в переменных, и готовой к частому доступу.


Содержание  Назад  Вперед