Управление ходом выполнения программы
Цель работы: познакомиться с процедурной моделью Пролог-
программ.
Основные понятия
Работу интерпретатора языка Пролог можно трактовать как рекурсивный циклический процесс унификации и вычисления подцелей. Действия интерпретатора инициируются запросом. В ходе выполнения этих действий интерпретатор “опустится” в структуру текущей программы настолько глубоко, насколько это окажется необходимым для того, чтобы найти факты, требующиеся для определения истинностного значения запроса. Затем интерпретатор вернется в исходное состояние, доказав или оказавшись не в состоянии доказать истинность запроса.
После того как пользователь вводит запрос интерпретатору, этот запрос активизируется. Интерпретатор приступает к анализу фраз текущей программы в поисках первой фразы, заголовок которой будет унифицироваться с запросом.
Неудача запроса и возврат назад
Если активный запрос достигает конца соответствующего множества фраз, то он завершится неудачей. Если такой активный запрос служит частью составного запроса и не является первой подцелью этого составного запроса, то интерпретатор возвратится назад, чтобы повторно проанализировать предыдущую подцель составного запроса. Если активный запрос является первой подцелью составного запроса, то неудача активного запроса приводит к неудаче всего составного запроса. Когда интерпретатор возвращается назад, ликвидируются все конкретизации переменных, выполненные последним активным запросом.
|
|