- •Приложение 4-5
- •IV. Версии языка пролог СиПролог Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда для разработки программ
- •Отладчик
- •Отладочные команды
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения языка
- •Квинтус Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Система программирования на Прологе фирмы Сайлоджик Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения
- •Пролог-2 Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения
- •Эрити Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Расширения
- •Унсв Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Турбо Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Среда разработки программ
- •Отладчик
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения
- •V. Ответы к упражнениям Ответы к упражнениям
- •Глава 2
- •Глава 3
- •Глава 5
- •Глава 6
- •Глава 7
Среда разработки программ
Эрити Пролог обладает следующими двумя особенностями, которые облегчают разработку больших программ: 1) наличие виртуальной памяти и 2) возможность разделения программы на сегменты (в оригинале - worlds (миры).- Примеч. пер). Программа-менеджер, управляющая взаимодействием с виртуальной памятью выполняет обмен между оперативной памятью и диском. Размер страницы --16 К. Сегмент может состоять из 256 страниц, в одной программе может быть до 256 сегментов. В отличие от модуля Пролога-2, сегмент Эрити Пролога служит лишь средством организации фраз в программе. Сегмент нельзя присоединять к различным программам и отсоединять от них. Существуют две разновидности сегментов ~ сегмент данных и сегмент кода. Сегмент данных целиком состоит из баз данных, образованных из фактов, факт добавляется в текущий сегмент данных при помощи любого из встроенных предикатов "recorda", "recordz", "record_after" или "replace", а удаляется из текущего сегмента данных предикатом "erase". Сегмент кода состоит из предикатов, в которые могут входить и факты, и правила. Фраза добавляется в текущий сегмент кода при помощи предиката "assert", а удаляется из него предикатом "retract" (см. разд. 4.7).
По умолчанию во время сеанса работы с Прологом всегда существует сегмент (предназначенный и для кода, и для данных), называемый "api". Новый сегмент создается при обращении к встроенному предикату "create_world". После того как сегмент будет создан, вызов предиката "data_world" превратит его в текущий сегмент данных (т.е. это будет сегмент, к которому применимы действия "erase", "recorda" и т.д.). Вызов встроенного предиката "code_world" превратит созданный сегмент в текущий сегмент кода (т.е. для этого сегмента станут допустимы действия "assert" и "retract"). Для оптимизации использования виртуальной памяти программист может поместить все предикаты, относящиеся к определенной "теме, в один сегмент, а когда потребуется опросить предикаты этого сегмента, программист может превратить этот сегмент в текущий. Обращение к встроенному предикату "delete_world" приведет к удалению сегмента со всеми его фразами.
edit (F)
Встроенный предикат "edit" имеет единственный аргумент — имя файла. Данный предикат обращается к переменной среды DOS "editor", которая содержит имя редактора. Затем предикат "edit" приостанавливает Пролог-процесс и запускает внешний редактор для корректировки файла. После окончания редактирования предикат "edit" возобновляет выполнение Пролог-процесса и автоматически инициирует повторный просмотр файла. (Смысл термина "повторный просмотр" ("reconsult") будет тем же самым, что и для СиПролога).
Отладчик
Отладчик Эрити Пролога в целом аналогичен отладчику СиПролога. Строку отладочной информации:
(api, api) ** (0) CALL: полет (пиплз, _0039,_0040) ? > можно рассматривать следующим образом.
«(api, api) » - это имена сегмента кода и сегмента данных,
** означает, что в данный момент контрольная точка установлена в процедуре "полет/З".
(0) — это уникальное обозначение конкретного вызова данной процедуры.
«СALL:» показывает, что эта информация относится к месту первоначального входа в процедуру.
«полет (пиплз, _0039, _0040) » - сама подцель.
? > — это сообщение—подсказка, свидетельствующее о том, что отладчик ожидает ввода отладочных команд.
У отладчика Эрити Пролога имеется значительно большее число отладочных команд, чем у отладчика СиПролога.