- •Справочное руководство по турбо прологу 2.0
- •Глава 2. Элементы языка 50
- •Глава 3. Интерфейс с другими языками 75
- •Часть 2. Стандартные предикаты 91
- •Часть 3. Приложения 250
- •Введение
- •Дистрибутивные диски
- •Рекомендуемая литература:
- •Часть 1. Руководство программиста по турбо прологу глава 1. Система меню турбо пролога
- •Пользователям Турбо Пролога 1.X
- •Структура меню Турбо Пролога
- •Выбор элементов меню.
- •"Горячие" клавиши.
- •Системные окна и строки помощи
- •Окно редактирования.
- •Как войти в окно редактирования
- •Компоненты окна редактирования
- •Как выйти из окна редактирования.
- •Окно трассировки
- •Окно сообщений
- •Диалоговое окно
- •Строка помощи
- •Главное меню.
- •Окно редактирования.
- •Окно вспомогательного редактирования (Xedit).
- •Окно просмотра.
- •Изменение размера окон.
- •Просмотр окон
- •Создание нового файла.
- •Загрузка существующего файла.
- •Команды редактора.
- •Сохранение исходного текста в файле.
- •Запись исходного текста на диск
- •Вспомогательный редактор
- •Меню и команды
- •Меню файлов (Files)
- •Загрузка файлов (Load)
- •"Указка" (Pick)
- •Новый (New)
- •Выход (Quit)
- •Команда редактирования (Edit)
- •Команда запуска (Run)
- •Меню компиляции (Compile)
- •Память (Memory)
- •Меню опций (Options)
- •Опции компоновки (Link Options)
- •Стек (Stack)
- •Область ссылок (Trail Array)
- •"Куча" (Heap)
- •Контроль во время исполнения (Run-time check)
- •Цвета (Colors)
- •Размер окна (Window size)
- •Каталоги
- •Текущий каталог (Current directory)
- •Авто-загрузка сообщений (Avto-Load Message)
- •Режим экрана (Screen mode)
- •Конфигурация клавиатуры (Keyboard Configuration)
- •Перемещение курсора (Cursor movement)
- •Глава 2. Элементы языка
- •Ключевые слова.
- •Специальные предикаты.
- •Разделы программы.
- •Раздел доменов (domains).
- •Стандартные домены.
- •Списковые домены.
- •Домены составных объектов.
- •Файловый домен.
- •Специально заданные предопределенные домены.
- •Сокращение объявлений доменов.
- •Объявление ссылочных доменов.
- •Раздел предикатов (predicates).
- •Раздел базы данных (database).
- •Раздел предложений (clauses).
- •Простые константы.
- •Переменные.
- •Составные объекты.
- •Списки - Специальный вид составных объектов.
- •Раздел констант.
- •Условная компиляция.
- •Включение файлов в вашу программу.
- •Директивы компилятора.
- •Управление памятью в Турбо Прологе.
- •Экономия ресурсов памяти.
- •Управление распределением памяти.
- •Генерирование выполняемых программ.
- •Модульное программирование.
- •Проекты.
- •Глобальные объявления.
- •Глобальные домены.
- •Глобальная база данных.
- •Глобальные предикаты.
- •Компиляция и компоновка модулей.
- •Пример.
- •Глава 3. Интерфейс с другими языками
- •Вызов других языков из Турбо Пролога.
- •Что делать перед вызовом.
- •Объявление внешних предикатов.
- •Вызов соглашений и передача параметров.
- •Соглашение об обозначениях
- •Использование ключевого слова as
- •Вызов процедуры, написанной на Си из Пролога.
- •Опции компилятора Турбо Си и компоновка.
- •Вызов программ на языке ассемблера из Турбо Пролога.
- •Использование внутреннего ассемблера Турбо Си.
- •Вызов Турбо Пролога из других языков.
- •Динамическое распределение памяти.
- •Передача составных объектов в другие языки.
- •Передача списков.
- •Передача структур.
- •Примеры.
- •Обработка списков.
- •Программирование на низком уровне.
- •Часть 2. Стандартные предикаты
- •Arc/5 Графика
- •Bar/4 Графика
- •Bt_close/2 Внешняя База Данных
- •Bt_create/5 Внешняя База Данных
- •Bt_delete/2 Внешняя База Данных
- •Bt_open/3 Внешняя База Данных
- •Bt_statistics/8 Внешняя База Данных
- •Chain_delete/2 Внешняя База Данных
- •Chain_first/3 Внешняя База Данных
- •Chain_inserta/5 Внешняя База Данных
- •Chain_insertafter/5 Внешняя База Данных
- •Chain_insertz/5 Внешняя База Данных
- •Chain_last/3 Внешняя База Данных
- •Chain_next/3 Внешняя База Данных
- •Chain_prev/3 Внешняя База Данных
- •Chain_terms/5 Внешняя База Данных
- •Circle/3 Графика
- •Cleardevice/0 Графика
- •Clearviewport/0 Графика
- •Closegraph/0 Графика
- •Db_btrees/2 Внешняя База Данных
- •Db_chains/2 Внешняя База Данных
- •Db_close/1 Внешняя База Данных
- •Db_create/3 Внешняя База Данных
- •Db_delete/2 Внешняя База Данных
- •Db_flush/1 Внешняя База Данных
- •Db_garbagecollect/1 Внешняя База Данных
- •Db_open/3 Внешняя База Данных
- •Db_openinvalid/3 Внешняя База Данных
- •Db_statistics/5 Внешняя База Данных
- •Detectgraph/2 Графика
- •Drawpoly/1 Графика
- •Ellipse/6 Графика
- •Fillellipse/4 Графика
- •Fillpoly/1 Графика
- •Floodfill/3 Графика
- •Getarccoords/6 Графика
- •Getaspectratio/2 Графика
- •Getbkcolor/1 Графика
- •Getcolor/1 Графика
- •Getdefaultpalette/1 Графика
- •Getdrivername/1 Графика
- •Getfillpattern/1 Графика
- •Getfillsettings/2 Графика
- •Getgraphmode/1 Графика
- •Getimage/6 Графика
- •Getlinesettings/3 Графика
- •Getmaxcolor/1 Графика
- •Getmaxx/1 Графика
- •Getmaxy/1 Графика
- •Getmaxmode/1 Графика
- •Getmodename/2 Графика
- •Getmoderange/3 Графика
- •Getpalette/1 Графика
- •Getpalettesize/1 Графика
- •Getpixel/3 Графика
- •Gettextsettings/5 Графика
- •Getviewsettings/5 Графика
- •Getx/1 Графика
- •Gety/1 Графика
- •Graphdefaults/0 Графика
- •Graphresult/1 Графика
- •Imagesize/5 Графика
- •Initgraph/5 Графика
- •Key_current/4 Внешняя База Данных
- •Key_delete/4 Внешняя База Данных
- •Key_first/3 Внешняя База Данных
- •Key_insert/4 Внешняя База Данных
- •Key_last/3 Внешняя База Данных
- •Key_next/3 Внешняя База Данных
- •Key_prev/3 Внешняя База Данных
- •Key_search/4 Внешняя База Данных
- •Line/4 Графика
- •Linerel/2 Графика
- •Lineto/2 Графика
- •Moverel/2 Графика
- •Moveto/2 Графика
- •Outtext/1 Графика
- •Outtextxy/3 Графика
- •Pieslice/5 Графика
- •Pieslicexy/6 Графика
- •Putimage/4 Графика
- •Putpixel/3 Графика
- •Rectangle/4 Графика
- •Restorecrtmode/0 Графика
- •Setactivepage/1 Графика
- •Setallpalette/1 Графика
- •Setaspectratio/2 Графика
- •Setbkcolor/1 Графика
- •Setcolor/1 Графика
- •Setfillpattern/2 Графика
- •Setfillstyle/2 Графика
- •Setgraphmode/1 Графика
- •Setgraphbufsize/1 Графика
- •Setlinestyle/3 Графика
- •Setpalette/2 Графика
- •Setrgbcolor/4 Графика
- •Settextjustify/2 Графика
- •Settextstyle/3 Графика
- •Setusercharsize/4 Графика
- •Setviewport/5 Графика
- •Setvisualpage/1 Графика
- •Setwritemode/1 Графика
- •Term_delete/3 Внешняя База Данных
- •Term_replace/4 Внешняя База Данных
- •Textheight/2 Графика
- •Textwidth/2 Графика
- •Часть 3. Приложения приложение а. Введение вdos
- •Что такое dos
- •Как загрузить программу?
- •Каталоги
- •Подкаталоги
- •Avtoexec.Bat-файл
- •Команда path
- •Смена каталогов
- •Приложениеb. Интерактивный редактор турбо пролога
- •Быстрый вход, быстрый выход
- •Служебная строка окна редактора
- •Основные команды редактора
- •Команды Редактора, совпадающие с командами WordStar Основные команды работы с курсором
- •Команды быстрого движения курсора
- •Команды вставки и удаления
- •Команды работы с блоками
- •Остальные команды редактора
- •Старые команды
- •Поиск и замена
- •Редактор Турбо Пролога по сравнению с WordStar
- •Корректировка файла на диске.
- •Приложение c. Сообщения об ошибках
- •Приложение d. Различия между версиями 1.1 и 2.0
- •Файл определения проекта
- •Новые ограничения по именам
- •Новые предопределенные домены
- •Контроль состава параметров шаблона (flow pattern)
- •Поддержка старых командных клавиш редактора
- •Ошибочные ситуации в стандартных предикатах
- •Расширение Турбо Пролога 2.0
- •Системные расширения
- •Приложениеe. Словарь специальных терминов
- •Приложение f. Географическая база данных (Geobase)
- •Использование Geobase
- •Системы с 2-мя флоппи-дисковыми устройствами
- •Компиляция Geobase
- •Создание автономной программы
- •Главное меню Geobase
- •Справка
- •Команды dos
- •Редактор
- •Запросы к базе данных
- •Просмотр языка
- •Корректировка языка
- •Принципы Geobase
- •Использование принципа Geobase
- •Создание вашей базы данных
- •Преобразование Geobase
- •Предикат "ent"
- •Предикат "db"
- •Трансляция запросов на естественном языке
- •Внутренние имена объектов
- •Внутренние имена связей
- •Определение структуры предложений
- •База данных языка
- •Грамматический разбор с помощью разделения списков
- •Заключение
- •Приложение g. Анализатор предложений на турбо прологе
- •Использование анализатора предложений
- •Помощь пользователя
- •Операционная система
- •Редактирование базы данных
- •Загрузка базы данных из файла
- •Сохранение базы данных
- •Анализ предложений
- •«Показать/изменить словарь»
- •Приложениеh.Geni: оболочка экспертной системы
- •Использование geni
- •Запросы geni
- •Просмотр знаний
- •Корректировка базы знаний
- •Сохранение базы знаний
- •Создание новой базы знаний
- •Чистка текущей базы знаний
- •Проектирование новой базы знаний
- •Приложение I. Tlib: библиотека турбо
- •Компоненты командной строки tlib
- •Компонент «описание»
- •Список операций
- •Имена файла и модуля
- •Операции tlib
- •Создание библиотеки
- •Использование файла ответа
- •Расширенные возможности: опция /с
- •Примеры
- •Приложение j. Tlink: компоновщик турбо
- •Активизация tlink
- •Использование ответных файлов
- •Компоновка модулей Турбо Пролога и Турбо Си.
- •Модуль инициализации
- •Библиотеки
- •Опции tlink
- •Опция /c
- •Опция /d
- •Опция /I
- •Опция /l
- •Опции /m, /s, /X
- •Опция /m
- •Опция /s
- •Опция /X
- •Опция /n
- •Ограничения
- •Сообщения об ошибках
- •Предупреждения
- •Нефатальные ошибки
- •Фатальные ошибки
- •Приложение k. Метапрограммирование Введение
- •Пролог/Турбо: развитие и философские установки
- •Конструкторские решения в Турбо Прологе
- •Чем Турбо зарядило Турбо Пролог
- •Интерпретатор правил с обратной цепочкой рассуждений
- •Термы (горючее для интерпретатора правил)
- •Статические термы: область sTerm (статических термов)
- •Интерпретирование области термов.
- •Что такое интерпретатор?
- •Интерпретация правил в Прологе
- •Использование sTerm и aTerm для моделирования интерпретатора правил
- •Переменные и среда
- •Процесс унификации
- •Унификация статических и действительных термов
- •Интерпретация тела правила
- •Выполнение выполняемых термов: предикат call.
- •Встроенные предикаты
- •Сканнер и транслятор
- •Операторы традиционного Пролога
- •Использование операторов в Турбо Прологе
- •Интерпретатор Пролога
- •Реализация трассировки
- •Теперь объединим все вместе
- •Расширения экспертной системы
- •Цепочка с прямым порядком рассуждений
- •Стандартные предикаты, реализованные в pie
- •Заключение
Глава 2. Элементы языка 50
Имена. 50
Ключевые слова. 50
Специальные предикаты. 51
Разделы программы. 51
Раздел доменов (domains). 52
Стандартные домены. 52
Списковые домены. 53
Домены составных объектов. 53
Файловый домен. 53
Специально заданные предопределенные домены. 54
Сокращение объявлений доменов. 54
Объявление ссылочных доменов. 54
Раздел предикатов (predicates). 55
Раздел базы данных (database). 55
Раздел предложений (clauses). 56
Простые константы. 56
Термы. 57
Переменные. 57
Составные объекты. 58
Списки - Специальный вид составных объектов. 58
Раздел констант. 58
Условная компиляция. 60
Включение файлов в вашу программу. 60
Директивы компилятора. 61
bgidriver 61
bgifont 61
check_determ O/C/Non-Determ) 62
code 62
config 63
diagnostics O/C/Diagnostics 63
errorlevel O/C/Error Lever 64
heap O/C/M/Heap 64
nobreak O/C/R/Break Check 65
nowarnings O/C/Variable Used Once 65
printermenu O/C/Printer Menu in EXE file 65
project 65
trace (shorttrace) O/C/T/Trace (Short Trace) 65
trail O/C/M/Trail Array 67
Управление памятью в Турбо Прологе. 67
Экономия ресурсов памяти. 68
Управление распределением памяти. 68
Генерирование выполняемых программ. 69
Модульное программирование. 70
Проекты. 70
Глобальные объявления. 71
Глобальные домены. 71
Глобальная база данных. 72
Глобальные предикаты. 72
Компиляция и компоновка модулей. 72
Пример. 73
Глава 3. Интерфейс с другими языками 75
Вызов других языков из Турбо Пролога. 75
Что делать перед вызовом. 75
Объявление внешних предикатов. 75
Вызов соглашений и передача параметров. 75
Соглашение об обозначениях 76
Использование ключевого слова as 77
Вызов процедуры, написанной на Си из Пролога. 77
Опции компилятора Турбо Си и компоновка. 78
Вызов программ на языке ассемблера из Турбо Пролога. 79
Использование внутреннего ассемблера Турбо Си. 82
Вызов Турбо Пролога из других языков. 82
Динамическое распределение памяти. 84
Передача составных объектов в другие языки. 84
Передача списков. 84
Передача структур. 85
Примеры. 85
Обработка списков. 86
Программирование на низком уровне. 88
Часть 2. Стандартные предикаты 91
arc/5 Графика 91
assert/1 92
assert/2 92
asserta/1 93
asserta/2 93
assertz/1 94
assertz/2 95
attribute/1 95
bar/4 Графика 96
beep/0 97
bios/3 97
bios/4 98
bitand/3 99
bitleft/3 99
bitnot/2 100
bitor/3 100
bitright/3 101
bitxor/3 101
bound/1 102
break/1 102
breakpressed/0 103
bt_close/2 Внешняя База Данных 103
bt_create/5 Внешняя База Данных 104
bt_delete/2 Внешняя База Данных 105
bt_open/3 Внешняя База Данных 105
bt_statistics/8 Внешняя База Данных 106
chain_delete/2 Внешняя База Данных 107
chain_first/3 Внешняя База Данных 108
chain_inserta/5 Внешняя База Данных 108
chain_insertafter/5 Внешняя База Данных 109
chain_insertz/5 Внешняя База Данных 110
chain_last/3 Внешняя База Данных 110
chain_next/3 Внешняя База Данных 111
chain_prev/3 Внешняя База Данных 112
chain_terms/5 Внешняя База Данных 113
char_int/2 113
circle/3 Графика 114
cleardevice/0 Графика 115
clearviewport/0 Графика 115
clearwindow/0 115
closefile/1 116
closegraph/0 Графика 116
colorsetup/1 117
comline/1 117
concat/3 118
consult/1 119
consult/2 120
consulterror/3 120
cursor/2 121
cursorform/2 121
cutbacktrack/1 122
date/3 123
db_btrees/2 Внешняя База Данных 123
db_chains/2 Внешняя База Данных 124
db_close/1 Внешняя База Данных 124
db_copy/3 125
db_create/3 Внешняя База Данных 126
db_delete/2 Внешняя База Данных 127
db_flush/1 Внешняя База Данных 128
db_garbagecollect/1 Внешняя База Данных 128
db_open/3 Внешняя База Данных 129
db_openinvalid/3 Внешняя База Данных 130
db_statistics/5 Внешняя База Данных 131
debug/0 132
deletefile/1 133
detectgraph/2 Графика 133
dir/3 134
dir/6 134
disk/1 135
display/1 135
drawpoly/1 Графика 136
edit/2 137
edit/13 137
editmsg/8 139
ellipse/6 Графика 139
envsymbol/2 140
eof/1 140
equals(=)/2 141
errormsg/4 142
existfile/1 143
existwindow/1 143
exit/0 143
exit/1 144
fail/0 144
field_attr/4 145
field_str/4 146
filemode/2 147
filepos/3 147
file_str/2 149
fillellipse/4 Графика 150
fillpoly/1 Графика 150
findall/3 150
floodfill/3 Графика 152
flush/1 152
format/* 153
framewindow/1 155
framewindow/4 155
free/1 156
frontchar/3 157
frontstr/4 158
fronttoken/3 158
getarccoords/6 Графика 160
getaspectratio/2 Графика 160
getbacktrack/1 160
getbkcolor/1 Графика 161
getcolor/1 Графика 162
getdefaultpalette/1 Графика 162
getdrivername/1 Графика 163
getfillpattern/1 Графика 163
getfillsettings/2 Графика 163
getgraphmode/1 Графика 165
getimage/6 Графика 165
getlinesettings/3 Графика 166
getmaxcolor/1 Графика 167
getmaxx/1 Графика 167
getmaxy/1 Графика 167
getmaxmode/1 Графика 168
getmodename/2 Графика 168
getmoderange/3 Графика 168
getpalette/1 Графика 169
getpalettesize/1 Графика 170
getpixel/3 Графика 170
gettextsettings/5 Графика 171
getviewsettings/5 Графика 172
getx/1 Графика 172
gety/1 Графика 173
gotowindow/1 173
graphdefaults/0 Графика 174
graphresult/1 Графика 175
imagesize/5 Графика 175
initgraph/5 Графика 176
inkey/1 179
isname/1 180
key_current/4 Внешняя База Данных 180
key_delete/4 Внешняя База Данных 181
key_first/3 Внешняя База Данных 182
key_insert/4 Внешняя База Данных 182
key_last/3 Внешняя База Данных 183
key_next/3 Внешняя База Данных 184
key_prev/3 Внешняя База Данных 184
key_search/4 Внешняя База Данных 185
keypressed/0 186
line/4 Графика 186
linerel/2 Графика 187
lineto/2 Графика 187
makewindow/8 187
makewindow/11 189
membyte/3 190
memword/3 191
moverel/2 Графика 191
moveto/2 Графика 192
nl/0 192
not 192
openappend/2 193
openmodify/2 194
openread/2 194
openwrite/2 195
outtext/1 Графика 196
outtextxy/3 Графика 196
pieslice/5 Графика 197
pieslicexy/6 Графика 197
port_byte/2 198
ptr_dword/3 198
putimage/4 Графика 199
putpixel/3 Графика 200
random/1 200
random/2 201
readchar/1 201
readdevice/1 202
readint/1 203
readln/1 203
readreal/1 204
readterm/2 205
readtermerror/2 206
rectangle/4 Графика 206
removewindow/0 207
removewindow/2 207
renamefile/2 208
resizewindow/0 208
resizewindow/4 209
restorecrtmode/0 Графика 209
retract/1 210
retract/2 211
retractall/1. 212
retractall/2. 213
save/1. 213
save/2. 214
scr_attr/3 215
scr_char/3 216
scroll/2 216
setactivepage/1 Графика 217
setallpalette/1 Графика 218
setaspectratio/2 Графика 219
setbkcolor/1 Графика 219
setcolor/1 Графика 220
setfillpattern/2 Графика 221
setfillstyle/2 Графика 221
setgraphmode/1 Графика 222
setgraphbufsize/1 Графика 223
setlinestyle/3 Графика 223
setpalette/2 Графика 224
setrgbcolor/4 Графика 225
settextjustify/2 Графика 226
settextstyle/3 Графика 226
setusercharsize/4 Графика 228
setviewport/5 Графика 229
setvisualpage/1 Графика 229
setwritemode/1 Графика 229
shiftwindow/1 230
snowcheck/1 231
sound/2 232
storage/3 233
str_char/2 234
str_int/2 234
str_len/2 235
str_real/2 236
system/1 237
system/3 237
term_delete/3 Внешняя База Данных 238
term_replace/4 Внешняя База Данных 239
textheight/2 Графика 239
textwidth/2 Графика 240
time/4 240
trace/1 241
trap 242
true 243
unreadchar/1 243
upper_lower/2 244
window_attr/1 245
window_str/1 245
write 246
writedevise/1 247
goal 247
writef/* 248
