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

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

Эрити Пролог обладает следующими двумя особенностями, которые облегчают разработку больших программ: 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) » - сама подцель.

? > — это сообщение—подсказка, свидетельствующее о том, что отлад­чик ожидает ввода отладочных команд.

У отладчика Эрити Пролога имеется значительно большее число отла­дочных команд, чем у отладчика СиПролога.

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