- •IV. Версии языка пролог СиПролог Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда для разработки программ
- •Отладчик
- •Отладочные команды
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения языка
- •Квинтус Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Система программирования на Прологе фирмы Сайлоджик Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения
- •Пролог-2 Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения
- •Эрити Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Расширения
- •Унсв Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Директивы
- •Среда разработки программ
- •Отладчик
- •Компилятор
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Турбо Пролог Поставщик
- •Синтаксис и встроенные предикаты
- •Среда разработки программ
- •Отладчик
- •Запомненные состояния
- •Интерфейс с иными языками программирования
- •Расширения
- •V. Ответы к упражнениям Ответы к упражнениям
- •Глава 2
- •Глава 3
- •Глава 5
- •Глава 6
- •Глава 7
Расширения
В составе SKW имеется система управления реляционной базой данных, размещающейся на диске. Пролог-программы можно хранить на диске в виде внешних баз знаний. Если внешняя база знаний подключена к выполняющемуся Пролог-процессу, то ко всем фразам этой базы можно обращаться точно так же, как и к загруженным обычным образом фразам Пролога. Система SKW также может сопрягаться с некоторыми существующими коммерческими реляционными базами данных.
Некоторые операции, выполняемые над фразами внешней базы знаний, нельзя выполнить для фраз, загруженных в память. К примеру, встроенный предикат "aggregate" выполняет операции подсчета суммы, среднего значения, максимума и минимума для одного аргумента предиката (имеется в виду, что этот аргумент - список. - Примеч. пер.), являющегося частью внешней базы знаний. Для аргументов предиката внешней базы знаний можно также выполнить сопоставление с эталоном регулярных (т.е. повторно встречающихся) выражений. Пусть, например, предикат "служащий/3" является частью внешней базы знаний, подключенной к текущему Пролог-процессу, а первый аргумент предиката "служащий/3" -это атом, содержащий фамилию служащего. Тогда нижеследующий запрос вернет значения аргументов всех фраз "служащий/3", в которых первый аргумент заканчивается символами "Смит":
| ?- служащий (Фамилия ?: 'Смит $ ',_,_).
фамилия == 'Вильям Г. Смит' ;
Фамилия = 'Сюзан Смит'
(Символ $ обозначает конец строки с регулярным выражением) .
В SKW имеется средство транзакций, которое позволяет программисту превратить некоторые операции в атомарные. Смысл введения атомарной операции состоит в том, что либо она вся заканчивается удачно, либо никакие ее действия не заканчиваются удачно. Средство транзакции будет особенно полезным для программ, которые должны модифицировать внешние базы знаний. Операции транзакций реализуются встроенными предикатами "tbegin" (начало транзакции), "tcommit" (запуск транзакции), "tabort" (прекращение транзакции), "detract" (отложенное удаление фраз) и "dessert" (отложенное добавление фраз). После обращения к предикату "tbegin" никакие вызовы предикатов "dessert" или "detract" не будут оказывать никакого перманентного влияния (имеется в виду то, что фразы внешней базы знаний останутся без изменений. — Примеч. пер.) на внешнюю базу знаний вплоть до обращения к предикату "tcommit". Вызов предиката "tcommit" приведет к выполнению всех отложенных вызовов предикатов "dessert" и "detract". Транзакции могут быть вложенными.
В SKW включено DCG-расширение, описанное в приведенном выше разделе по Си Прологу.
Разное
Команда "plint" — это команда операционной системы, позволяющая проверить стиль Пролог-программы и обнаружить некорректности: однократно используемые переменные, предикаты, определенные более чем в одном файле, и т.д. Команда операционной системы "pixref" позволяет получить информацию о процессах, которые вызывают другие процедуры из исходного Пролог-файла.
Пролог-2 Поставщик
Пролог-2 (Prolog-2) поставляется фирмой Эксперт Системз Интернэшнл. Он работает под управлением операционной системы MS-DOS на ЭВМ типа IBM PC или совместимых с ними.