Cтраница 4
Либо мы попали на оператор NEXT, минуя оператор FOR, либо в двух смежных парах FOR-NEXT указаны две разные переменные. В любом из этих случаев нас ждет сооб. Наличие стека циклов позволяет проконтролировать ситуацию, когда в двух вложенных циклах использована одна и та же управляющая переменная. Такой контроль происходит в момент выполнения очередного оператора FOR путем просмотра всех строк, находящихся в стеке. [46]
При выполнении сокращенного условного оператора вычисляется содержащееся в нем логическое выражение. Если результат имеет значение false, никаких действий не производится и начинает выполняться следующий по порядку оператор. В этом случае говорят, что условный оператор эквивалентен пустому. Он может вызвать переход в определенное место программы, с которого и будет продолжено ее исполнение. Действия оператора PI могут и не приводить к переходу, тогда по его завершении выполняется очередной оператор. [47]
Теперь, если последовательность выполнения операторов внутри каждой из бикомпонент будет установлена, то и вычислительный процесс, соответствующий его / - образу, можно считать заданным. В каждой бикомпоненте необходимо организовать итерационный цикл, причем желательно, чтобы переменных, по которым происходит сравнение в соседних шагах итерации, было немного. Первый из них находит наименьшее возможное по мощности множество операторов, но требует бблыпих затрат машинного времени и памяти, нежели второй алгоритм, который находит не абсолютно минимальное по мощности множество операторов, но все же не слишком большое. Операторы бикомпоненты, не выделенные в указанное множество, упорядочиваются, так как подграф, образованный этими операторами, заведомо не содержит контуров. Понятие упорядочивания означает, что для любой дуги ( х, у) вершина х не является концом никакой дуги, расположенной после у. В вычислительном процессе это означает, что при выполнении операторов, образами которых являются вершины упорядоченного графа, в последовательности, соответствующей расположению вершины, вычисление по каждому очередному оператору будет обеспечено значениями необходимых переменных, являющихся результатом действия предыдущих операторов. [48]
По описаниям объектов, содержащихся в задании, формируется модель проблемы: иерархическая совокупность объектов и отношений между ними. Эта модель, как отмечалось выше, используется для постановки на ней задач. Постановка носит императивный, предписывающий характер и описывается оператором постановки задачи. Императивная часть задания, имеющая заголовок ДЕЙСТВИЯ, может содержать несколько операторов. В начальный момент все компоненты модели имеют некоторые стандартные значения. К таким компонентам относятся аргументы и результаты оператора НАЙТИ, а также некоторые промежуточные компоненты. Совокупность значений всех компонент, включая стандартные, назовем состоянием модели. Зачастую в очередном операторе НАЙТИ значения большинства компонент остаются прежними. Чтобы сохраняющиеся значения аргументов не повторять, в операторе перечисляют аргументы без значений, подразумевая для них значения, определяемые текущим состоянием модели. [49]