docs / PROLAB2
.DOCМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОННОЙ ТЕХНИКИ
Кафедра Проектирования И Конструирования Интегральных МикроСхем
Курс: Экспертные системы в САПР СБИС
Лабораторная работа N 2
Основы декларативного программирования в Турбо-прологе.
Подготовил: Авдеев Е.В.
Москва, 2000 г.
1. ВВЕДЕНИЕ. Система программирования Turbo-prolog получила широкое распространение и приобрела многочисленных сторонников. Разнообразные диалоговые и сервисные возможности выделяют ее среди других Prolog-систем.
2. СТРУКТУРА ПРОГРАММЫ. Обычно программа на Turbo-Prolog имеет в своем составе произвольное количество произвольно следующих друг за другом разделов:
constants - объявление констант
domains - объявление типов данных
predicates - объявление предикатов
clauses - объявление фактов и правил
Содержимое разделов constants и domains может отсутствовать, но для улучшения читабельности и ясности программы рекомендуется всегда описывать константы и домены в тексте.
Раздел определения цели goal может быть только один или может отсутствовать, если цель определяется в диалоге. Если раздел goal присутствует, в нем определяется цель, которую необходимо достичь для решения поставленной задачи. Цель может состоять из нескольких подцелей. Если разрабатываемая программа предназначена для работы в пакетном режиме, т.е. если необходимо создать exe - файл, раздел goal не может быть опущен.
В программе могут присутствовать еще два раздела, обеспечивающие определение глобальных доменов и предикатов: global domains ; global predicates . Определение типов данных и предикатов в этих разделах позволяет обеспечить межмодульный интерфейс.
Наконец, перед разделом predicates может быть дополнительный раздел , содержащий определение предикатов динамической базы данных. Этот раздел называется database
Таким образом, программа на Turbo-Prolog может состоять из следующих разделов :
clauses, constants , database, domains , global domains, global predicates, goal, predicates .
Раздел predicates
В этом разделе определяются предикаты (отношения). Каждый предикат определяется со своим именем и аргументами (параметрами). Если типы данных некоторых аргументов предопределены, то они должны быть описаны заранее в разделе domains.
Раздел clauses
В этом разделе определяются факты и правила. Факт представляется именем предиката, за которым следуют аргументы, заключенные в круглые скобки. Заканчивается запись факта точкой. Все имена предикатов должны начинаться со строчной буквы.
Правило состоит из заголовка и тела. Заголовок представляет собой предикат, тело состоит из термов, которые могут быть связаны между собой словами or или and (в транскрипции 'Turbo-Prolog' ";" и ","). Между заголовком и телом стоит знак ":-", означающий "если". Каждое правило должно заканчиваться точкой. Имена переменных должны начинаться с прописной буквы и могут содержать буквы, цифры и знак подчеркивания "_". Максимальная длина имени - 250 знаков. Особую роль играют несвязанные переменные, они представляются знаком "_".
Комментарии
Комментарии могут располагаться в произвольных местах программы. Они начинаются с символов "/*" и заканчиваются символами "*/".
3. ТИПЫ ДАННЫХ
Symbol - последовательность букв, цифр и знаков подчеркивания, начинающаяся со строчной буквы или заключенная в кавычки.
String - любая последовательность символов, заключенная в кавычки.
Char - отдельный символ, заключенный в апострофы.
Integer - целое число в диапазоне от -32768 до 32767.
Real - любое число, которое может быть представлено в экспоненциальной форме.
File - имя файла
Примеры:
symbol - person, a1, b2, auto_nummer, "Prolog";
string - "хорошая погода", "123 / 234", "Кочан";
char - 'f', '5', '!','*';
integer - 4, 24, -975;
real - 34, 0.245, -234.22;
file - Peter, ballista, new4.
Данные типа symbol в отличие от данных типа string находятся в таблице символов. А таблица символов располагается в оперативной памяти. Поэтому использование данных типа symbol ускоряет работу программы, однако вначале, для построения таблицы символов, требуется дополнительное время.
Запуск системы
Распаковать на диск D файл prolog00.arj с созданием каталога LRPR2000
arj x -r prolog00.arj d:\
Система запускается файлом prolog.exe из каталога LRPR2000. Появляется главное меню со стандартным для Turbo-среды набором опций и четыре рабочих окна : редактирования, диалога, сообщений и трассировки. Снизу выводятся значения функциональных клавиш.
Лабораторные средства:
каталог LRPR2000 с подкаталогом GEOLAB и файлами
prolog.exe - экспертная оболочка "Тurbo-prolog",
prolog.cfg - текущая конфигурация системы,
prolog.err - расшифровка диагностических кодов,
prolog.hlp - описание системы "Turbo-prolog",
prolog.lib, prolog.ovl - вспомогательные подсистемы "Тurbo-prolog".
prolab1-..-8.doc - описания лабораторных работ 1-..-8.
work1-..-8.pro - рабочие файлы, содержащие на языке "Тurbo-prolog" примеры программ
ТИПОВАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ 2:
1) Распаковать на диск D файл prolog00.arj с созданием каталога LRPR2000
arj x -r prolog00.arj d:\
2) Изучить лабораторное задание prolab2.doc и войти в оболочку prolog.exe
3) Инициализировать и практически изучить всесторонне возможности интерфейса экспертной оболочки "Turbo-prolog".
4) Изучить структуру и функции программы РОДСТВО на языке Турбо-ПРОЛОГ
в файле work2.pro, скомпилировать и выполнить ее, меняя цель в диалоге.
5) Разработать, ввести, скомпилировать и исполнить как с внутренней, так и с внешней целью, программу ТРАНЗИСТОР, описывающую взаимоотношения вложенности плоских элементов топологии объекта
БИПОЛЯРНЫЙ ТРАНЗИСТОР С ИЗОЛЯЦИЕЙ P-N ПЕРЕХОДОМ
При разработке программы использовать предикаты типа : вписан; вложен.
Построить предикаты - соседствует, описан, внутри, снаружи, невложен.
6) Сдать лабораторную работу 2, предъявив результаты ответов программы на вопросы преподавателя, и сохранить нужные Вам файлы в Вашем Рабочем Каталоге.
7) Уничтожить созданный Вами каталог LRPR2000 на диске D со всем содержимым.
Е.Авдеев 01.09.00.