Скачиваний:
16
Добавлен:
01.05.2014
Размер:
287.74 Кб
Скачать

Директивы

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

:— dynamic король/2.

Если предикат "король/2" не объявить как динамический, то при употреблении по отношению к нему встроенных предикатов "assert" и "retract" интерпретатор потерпит неудачу и выдаст сообщение об ошибке. Встроенный предикат "clause" (см. разд. 4.9) также будет работать только с динамическими предикатами.

Среда разработки программ

Квинтус Пролог можно запускать либо как самостоятельный процесс, либо через специальный интерфейс с редактором EMACS. Если Квин­тус Пролог работает совместно с EMACS, то на экране дисплея, как пра­вило, будут два окна. Верхнее окно содержит текст из исходного файла с Пролог-программой, а нижнее окно — информацию Пролог-процесса, при­чем обмен данными происходит через буфер редактора EMACS. Для окна с файлом исходной программы имеются команды редактора EMACS, обеспечивающие пошаговый просмотр или компиляцию фраз в активный Пролог-процесс. К примеру, если все фразы некоторой процедуры сгруппи­рованы в одной части исходного файла, то с помощью одной EMACS-коман-ды можно будет найти все эти фразы и просмотреть или откомпилировать их. В редактор EMACS были внесены и другие расширения, обеспечиваю­щие работу с синтаксическими формами Пролога.

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

Если в СиПрологе интерпретатор встречает запрос к предикату, не содержащемуся в текущей программе, то он просто терпит неудачу. В Квин­тус Прологе программист может определять поведение системы для случая, когда попадется неизвестный предикат. По умолчанию запрос к неизвест­ному предикату вызывает включение отладчика. При помощи команд отладчика программист может просмотреть или откомпилировать файл, содержащий этот предикат (или ввести его с клавиатуры), и дать указание системе повторить выполнение запроса.

Отладчик

Отладчик Квинтус Пролога в целом аналогичен отладчику СиПролога, но обладает значительно большим количеством отладочных команд.

Компилятор

В Квинтус Прологе есть и пошаговый компилятор, и интерпретатор. Во время одного сеанса можно свободно смешивать интерпретируемый и откомпилированный коды. Компилятор является пошаговым в том смыс­ле, что в любом месте можно транслировать новые фразы в выполняющий­ся Пролог-процесс. Откомпилированный код выполняется значительно быстрее, чем интерпретируемый, но для интерпретируемого кода обеспе­чивается выдача большего объема отладочной информации. Как правило» процедуру при разработке следует подвергать интерпретации, а затем, после тщательной отладки, ее нужно компилировать.

Соседние файлы в папке Гл.6,7,Прилож.,Допол