Пролог GNU: отображение WAM-кода для запроса?

Можно ли отобразить код WAM для запроса с использованием GNU Prolog?

Я знаю, что могу использовать pl2wam для генерации WAM для программы, но как насчет запросов, которые я выполняю в программе? Есть ли способ показать код WAM для этого?

Я использую версию 1.4.4 для x64 Windows

1 ответ

Решение

Запросы не компилируются в код WAM. Они мета-интерпретируются на лету верхним уровнем (поэтому код WAM не создается). Чтобы увидеть код WAM, который будет сгенерирован компилятором, создайте файл с предложением, заголовок которого содержит все переменные имени запроса, а тело соответствует запросу. Например, для запроса:

?- append(X,Y,[a,b,c]).

создать файл Prolog, содержащий

query(X,Y) :- append(X,Y,[a,b,c]).

и скомпилируйте его в файл WAM, чтобы увидеть результат.

Другие вопросы по тегам