logo
TurboProlog / Документация / TOM_2

Использование sTerm и aTerm для моделирования интерпретатора правил

Хотя aTerms и sTerms выглядят похожими друг на друга, на самом деле

они различимы. sTerms представляет статический исходный код, который

нельзя непосредственно интерпретировать, в то время как aTerms являются

действительными термами, оцениваемыми интерпретатором.

Процесс оценки совершается так:

1. Прочитанный интерпретатором исходный код разбирается на ста-

тические термы.

2. Затем каждый статический терм преобразуется в aTerm, который

и может быть оценен.

В Прологе, так же как и в других механизмах вывода, процесс оценки

начинается с начального терма (в Прологе это цель). Любой код (предложе-

ние), внесенный в базу данных хранится в виде sTerm.

Когда цель преобразуется в активный терм, то интерпретатор правил

(механизм вывода) оценивает aTerm и выполняет связанное с ним действие. В

Прологе действие заключается в поиске в базе данных статического терма

(предложения), соответствующего активной цели.

Если Пролог находит соответствуюее предложение, то он читает этот

sTerm и преобразует его в aTerm, унифицируя цель и предложение, а затем,

если предложение является правилом, повторяет процесс для каждой подцели

в теле предложения.