цели программы. Мощные внутренние унификационные процедуры (работа которых будет пояснена в гл. 2) будут затем искать решение поставленной задачи.
Сила Турбо-Пролога заключается в его возможностях поиска и сопоставления. Внутренние унификационные процедуры бесстрастно перебирают все возможные комбинации правил, пытаясь удовлетворить заданную программистом цель. Пролог, как видим, базируется на естественных для человека логических принципах, и поэтому, чем больше вы им занимаетесь, тем он становится все более привлекательным.
Кому предназначена эта документация ?
Это пособие написано для всех, кто интересуется Турбо-Прологом, вне зависимости от того, является ли он новичком или профессиональным программистом. От вас не требуется знания ни процедурных языков (например, Бэйсик, Паскаль или Си), ни декларативных языков (например, Лисп). В книге изложены основные концепции и методы, необходимые для написания программ на Турбо-Прологе. С ее помощью вы научитесь мыслить категориями Пролога.
Если вы не работали с Турбо-Прологом вообще, эта книга именно для вас. "Использование Турбо-Пролога" позволит понять, что представляет собой программирование на декларативном языке, как проектируются и пишутся на нем программы. Логические предикаты и правила - это основные средства программирования для всех версий Пролога.
Если система Турбо-Пролог у вас уже имеется, и вы пробовали с ней работать, то книга пригодится и в этом случае. Она покажет, как проектировать и реализовать прикладные программы, предназначенные для решения различных задач.
Турбо-Пролог - это осуществленная реализация языка программирования высокого уровня Пролог компиляторного типа. Ее отличает большая скорость компиляции и счета. Турбо-Пролог предназначен для выдачи ответов, которые он логически выводит при посредстве своих мощных внутренних процедур. Так, программа на Турбо-Прологе в несколько строк, может заменить несколько страниц текста при программировании на каком-либо другом языке. Благодаря наличию мощных средств сопоставления, Турбо-Пролог пригоден не только для использования в приложениях, относящихся к области искусственного интеллекта и обработке естественноязыковых конструкций, но также применим в таких традиционных областях, как, например, управление базами данных.
Турбо-Пролог предназначен для машин класса IBM PC и совместимых с ними.
1.2 Пакет системы Турбо-Пролог
Пакет компилятора Турбо-Пролог состоит из двух дистрибутивных дисков и Руководства пользователя, насчитывающего свыше 200 страниц.
6
Один диск имеет имя PROGRAM DISK, другой - LIBRARY&SAMPLE PROGRAMS. В табл.1 приведены описания файлов, содержащихся на обоих дистрибутивных дисках.
Таблица 1.1. Файлы дистрибутивных дисков версии 1.1
___________________________________________________________
1.Содержимое диска PROGRAM DISK:
PROLOG.EXE |
основной файл системы Турбо-Пролог. |
PROLOG.OVL |
оверлейный файл, используемый системой при |
|
запуске, при создании .EXE-файлов и при выполнении не- |
PROLOG.SYS |
которых других функций. |
файл, содержащий информацию о цвете, расположении |
|
|
окон системы, также как и информацию об используемых |
PROLOG.ERR |
системой директориях. |
файл с сообщениями об ошибках |
|
PROLOG.HLP |
файл с текстом применяемых в системе подсказок (обраще- |
|
ние к нему осуществляется при помощи функциональной |
|
клавиши F1). |
GEOBASE.PRO демонстрационная программа базы данных |
|
и |
по географии США GeoBASE. |
GEOBASE.INC
GEOBASE.DBA данные для программы GeoBase.
GEOBASE.HLP текст подсказок программы GeoBase. README.COM программа для выдачи на экран содержимого
файла README.
README текстовой файл, содержащий необходимую для
работы информацию, не включенную в руководство пользователя Турбо-Пролога.
2.Содержимое диска LIBRARY&SAMPLE PROGRAMS:
PROLOG.LIB |
файлы, используемые системой Турбо-Пролог |
и |
при создании выполнимых файлов. |
INIT.OBJ
EXAMPLES директория, содержащая программы, используемые в разделе обучения Руководства пользователя.
ANSWERS директория, содержащая ответы на упражнения из Руководства.
PROGRAMS директория, содержащая демонстрационные программы.
________________________________________________________
7
1.2.1 Главное меню системы Турбо-Пролог
Главное меню Турбо-Пролога высвечивает 7 доступных пользователю опций (команд) в верхней части экрана. Первая буква названия каждой из команд выделена при помощи увеличенной яркости; на репродукциях книги это, к сожалению, не видно. Выделение имеет целью напоминать, что для задания команды достаточно нажать лишь первую букву ее названия.
Команды определяются 7 функциями Турбо-Пролога, каковыми явля-
ются:
1.Запуск программы на счет (Run).
2.Трансляция программы (Compile).
3.Редактирование текста программы (Edit).
4.Заданий опций компилятора (Options).
5.Работа с файлами (Files).
6.Настройка системы в соответствии с индивидуальными потребностями (Setup).
7.Выход из системы (Quit).
Переход от одной команды к другой прост и удобен. Существует два способа задания команд. Первый требует нажатия клавиши, соответствующей первой букве названия выбранной команды. Так, для выбора команды Edit необходимо нажать E. (Нет никакой разницы, какая буква была введена большая или маленькая, т. е. использование Shift не обязательно.) Для окончания работы с командой используется клавиша Esc. Второй способ состоит в перемещении по меню при помощи стрелок; переход к работе с выбранной командой осуществляется нажатием Enter.
Главное меню содержит четыре окна. В левом верхнем углу располагается окно редактора Турбо-Пролога ( Editor ), в правом верхнем углу - окно диалога (Dialog), в левом нижнем окно сообщений (Message), в правом нижнем - окно трассировки (Trace). Если вы используете цветной монитор, то по умолчанию для окна редактора задается голубой цвет, для окна диалога - красный и черный - для окон сообщений и трассировки.
Верхняя строка окна редактора содержит информацию о высвечиваемом в этом окне файле. Line 1 и Col 1 свидетельствуют о том, что курсор в настоящий момент располагается в первой позиции первой строки. Значения этих индикаторов строки и позиции меняются вслед за изменением положения курсора. Надпись Indent сигнализирует о том, что включен режим автоматического выравнивания строк, а надпись Insert - о том, что задан режим вставки. WORK.PRO является заданным по умолчанию именем рабочего файла; .PRO есть заданное по умолчанию расширение для файлов, содержащих программы на Турбо-Прологе. Если вы набьете в редакторе какой-либо текст и запишите его на диск без изменения имени файла, то файл с вашим текстом получит имя WORK.PRO.
8
1.2.2 Запуск на счет программы, написанной на Турбо-Прологе
Программа, работу с которой мы сейчас начинаем, имеет целью дать необходимые навыки в использовании меню системы и основных команд редактора. Программа называется WELCOME.PRO. Действия, которые следует предпринять, чтобы создать эту программу, не зависят от того, работаете ли вы на машине с винчестерским диском, или на машине с двумя дисководами для гибких дисков.
Перейдите при помощи стрелки к команде главного меню Edit и нажмите клавишу Enter (либо просто введите латинскую букву E).При этом в левом верхнем углу окна Editor появится мерцающая черточка - курсор редактора. Теперь редактор Турбо-Пролога готов принять вводимый вами с клавиатуры текст.
Набейте текст программы WELCOME.PRO: predicates
hello
goal
hello. clauses
hello :-
write("Welcome to Turbo Prolog!"), nl.
Когда вы доходите до конца очередной строки, нажимайте клавишу Enter для перехода на следующую. Для удаления неверного символа нужно прибегнуть к помощи клавиши BackSpace. Выравнивание строк в ТурбоПрологе, так же как и в других языках, преследует цель придания программе несколько большей наглядности и не влияет на ее выполнение.
1.2.3 "Добро пожаловать в систему Турбо-Пролог!"
Вы ввели в компьютер вашу первую программу на Турбо-Прологе. Для того чтобы запустить ее на счет, сначала требуется покинуть редактор системы, а для этого нужно нажать клавишу Esc. Курсор редактора при этом исчезнет, а курсор главного меню станет указывать на команду Edit. Задайте теперь команду Run и пронаблюдайте за двумя появившимися во время трансляции программы строками в окне сообщений Message и за результатом работы программы в окне диалога Dialog.
Первая строка в окне сообщений указывает на то, что началась трансляция программы WELCOME.PRO. Трансляция задается автоматически при задании команды Run, т. е. нет необходимости прибегать к помощи специальной команды Compile.
Турбо-Пролог позволяет адресовать результат трансляции либо на диск, либо в оперативную память. При задании Run программа транслируется в оперативную память. Транслировать программу на диск пока вы лишь учитесь работать на Турбо-Прологе, нет необходимости. Но в дальнейшем вы можете создавать и объектные файлы для совместного редактирования с другими объектными модулями, и выполнимые файлы, которые
9
можно запускать на счет вне среды Турбо-Пролога. Как вы, вероятно, заметили, Турбо-Пролог транслирует столь малую программу очень и очень быстро, за какие-то доли секунды. Вторая строка в окне сообщений сигнализирует о трансляции предиката hello.
* Упражнение
1.1. Запустите на счет программу WELCOME пару раз подряд и попрактикуйтесь переходить от одной команды к другой, пока не почувствуете себя в этом деле достаточно уверенно.
Теперь можно окончить сеанс работы с Турбо-Прологом, если вы этого хотите, конечно. Если в рабочий файл были внесены хоть какие-то изменения, система спросит, нужно ли записывать на диск новый исправленный вариант файла. Для обозначения положительного ответа необходимо нажать клавишу Y. Если команда Quit была задана случайно, ее можно отменить при помощи Esc.
1.2.4 Сохранение программного файла
Для того, чтобы записать на диск программу и таким образом сохранить ее, необходимо выйти из редактора (если вы находитесь в режиме редактирования), нажав клавишу Esc, а затем выбрать команду Files и подкоманду Save во вновь появившемся меню (либо нажав S, либо используя стрелки и клавишу Enter). В результате этих действий на экране возникнет небольшое окно, в котором будет высвечено либо заданное по умолчанию имя файла (как, например, WORK.PRO), либо то имя, которое вы присвоили файлу сами. Имя файла можно оставить без изменений, а можно и отредактировать. В нашем случае следует ввести имя WELCOME.PRO, а затем нажать Enter.
Если на диске уже есть файл с указанным именем (более ранняя версия редактируемой программы или какая-либо иная программа), то в результате операции записи на диск расширение имени этого файла будет сменено на .BAK, чтобы пометить старый вариант файла. Не забывайте сохранять отредактированный файл перед тем, как окончить сеанс работы с ТурбоПрологом. В противном случае модифицированный вариант программы будет утерян.
Достаточно частое сохранение рабочего файла на диск очень полезно. В случае отказа электропитания, или программного сбоя компьютера вы всегда будете иметь достаточно "свежий" вариант программы. Некоторые программисты записывают очередные версии программы под разными именами. Генерация таких многочисленных "поколений" программных файлов может также быть полезной, так как позволяет проследить все этапы развития программы.
10