6.3 Стратегия управления



Стратегия управления Пролога является расширением стандартной стратегии управления («поиск слева направо в глубину с возвратом»), соответствующей текстуальному упорядочению процедур и вызовов предикатов. Отличиями акторного механизма от стандартной стратегии управления являются возможности повторного доказательства акторов, а также задержки исполнения подцелей.







6.3.1 Исполнение вызова предиката



Общая схема исполнения вызова предиката (исполнения предиката) включает следующие действия: При этом исполнение вызовов предикатов различных типов о существляется в соответствии со следующими дополнительными правилами и исключениями:



Подцели копии предложения, построенной во время исполнения предиката, называются «подцелями доказательства».




6.3.2 Исполнение предложения



Будем говорить, что переменная или слот имеют «задерживающее» («отключающее») значение, если они несвязаны или их значение равно спейсеру #.

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

Исполнение предложения включает:



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

В случае унификации функтора исполняемого вызова предиката с метафунктором, значением метафунктора становится соответствующий терм — символ. В случае унификации исполняемого вызова предиката с метапеременной, значением метапеременной становится соответствующий терм — символ или структура. Однако при использовании названных метафункторов и метаатомов в качестве предикатных символов и предикатов подцелей, они рассматриваются, соответственно, как правильно построенные имена предикатов и предикаты.

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

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




6.3.3 Механизм задержки исполнения



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

Пересмотр списка задержанных подцелей осуществляется следующим образом:






6.3.4 Откат программы



Откатом называется возобновление исполнения процесса, начиная с последней (неустранённой оператором отсечения) точки выбора. Откат выполняется автоматически в случае неудачи какой-либо операции, осуществляемой в ходе исполнения предложения.

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

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



Содержание