Пролог 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, чтобы увидеть результат.