Textwidth/2 Графика
Назначение Возвращает ширину строки в пикселах
Обращение textwidth(ТекстСтрока,Длина)
Домены (string,integer)
Шаблоны описания (вх,вых)
аргументов
Описание textwidth берет текущий размер шрифта и коэффициент
умножения и возвращает длину строки ТекстСтрока в
пикселах в переменную Длина.
Этот предикат полезен для настройки расстояний между
линиями, вычисления высоты окна и размеров заголовка
для вывода их на различные графические фигуры и т.д.
Например, для шрифта 8x8 битов и коэффициента
умножения равного 1 (установленного settextstyle)
длина выводимой строки TurboProlog2 будет равна 96
пикселов.
Полезно использовать textwidth для определения длины
строки вместо ручных вычислений. При использовании
этого предиката не требуется модифицировать исходный
текст, когда работаете с различными шрифтами.
Смотри gettextsettings,outtext,textheight
time/4
Назначение Устанавливает или считывает время в системе
Обращение time(Час,Минут,Сек,Сотдолсек)
Домены (integer,integer,integer,integer)
Шаблоны описания (вх,вх,вх,вх) , (вых,вых,вых,вых)
аргументов
Описание (вх,вх,вх,вх)
Устанавливает время, используемое внутренними часами
компьютера.
(вых,вых,вых,вых)
Считывает время с внутренних часов компьютера.
Неудачное Никогда не дает.
завершение
Ошибки 1075 Неверные параметры для предиката 'data'.
Пример
Goal: time(H,M,S,T)
H=11, M=30, S=13, T=49
1 Solution
Goal: time(0,0,0,0)
Yes
Goal: time(H,M,S,T)
H=0, M=0, S=6, T=15
1 Solution
trace/1
Назначение Устанавливает или получает состояние трассировки
Обращение trace(Состояние)
Домены (symbol)
Шаблоны описания (вх) , (вых)
аргументов
Описание Основное использование trace - дать вам возможность
трассировать выбранные части вашего исходного текста
программы без порождения трассировки для частей
программы, которые отлажены.
(вх)
trace изменит режим трассировки на on (вкл) или off
(выкл), установленных значением Состояние.
Состояние = on Включить режим трассировки.
Состояние = off Выключить режим трассировки.
Одна из двух директив компилятора trace или
shorttrace должны быть вначале исходного текста
программы для выполнения этих предикатов.
(вых)
Связывает Состояние с on или off, показывающих будет
ли выполняться трассировка или нет.
Неудачное Никогда не дает.
завершение
Ошибки Нет ошибок.
Пример
goal
trace(off),
works_already(X, Z),
trace(on).
trap
Назначение Тормозит (останавливает) выход, прерывание и
выполнение программы ошибок
Обращение trap(ВызываемыйПредикат,КодВыхода,ПредикатОшибки)
Домены (<predicate>,integer,<predicate>)
Шаблоны описания (*,вых,*)
аргументов
Описание Стандартный предикат trap возвращает перехваченную
внешнюю ошибку и обрабатывает исключительную
ситуацию. В комбинации с exit вы можете использовать
его как разновидность механизма обработки ошибок
(longfail-blockexit-longjump mechanism).
Обычно, trap будет просто согласован, если
ВызываемыйПредикат будет согласован, или
несогласован, если он не согласуется. Однако, если
происходит исключительная (особая) ситуация во время
выполнения ВызываемыйПредикат, или во время
выполнения одной из его подцелей - КодВыхода, то
будет возвращаться соответствующее значение, и будет
вызван ПредикатОшибки. Когда ПредикатОшибки
выполнится, trap будет несогласован. Исключительные
ситуации и коды выхода следующие:
------------------------------------------------
Ситуация Код выхода
------------------------------------------------
включилась программа соответствующий номер
обработки ошибки ошибки
нажат Ctrl-Break 0
exit(N) номер N
exit 0
Если ВызываемыйПредикат является недетерминированным
это будет показано в вызове trap. Это значит, что
выполнение этой улавливаемой подцели полностью видно,
исключая случай, если подцель прекращает выполнение
при помощи exit.
Перед вызовом в trap ПредикатОшибки размеры стека,
динамической области и трейла будут установлены в
старое значение, которое они имели перед тем, когда
был вызван trap. Это значит, что trap способен
остановить переполнение памяти.
Пример
domains
file=dd
predicates
nondeterm process(STRING)
error(INTEGER)
clauses
process("a").
process("b"):- writedevice(dd).
error(E):- writef("\n\n>> Код ошибки=%", E),beep.
goal
write("\n\nТЕСТ ЛОВЛИ ПРОГРАМНЫХ ОШИБОК"),
trap( process(A), E, error(E) ),
write("\nПроцес успешен: A=", A),
write("\nСейчас проверим второе предложение в
process"),
fail.
true
Назначение Предикат всегда будет согласован
Обращение true
Описание Стандартный предикат true согласовывается немедленно
Предикат удобно использовать как аргумент предиката
trap, например, если вы не желаете описывать процесс
выполнения ошибки, то можете использовать :
trap(writedevace(ФайлКотМожетБытьЗакрыт),_,true)
Неудачное Никогда не дает.
завершение
Ошибки Нет ошибок.
Пример
Goal:true
Yes
Goal: not(true)
No
Goal: trap(exit,_,true)
No
unreadchar/1
Назначение Помещает символ в буфер клавиатуры
Обращение unreadchar(Символ)
Домены (char)
Шаблоны описания (вх)
аргументов
Описание unreadchar будет помещать Символ в буфер клавиатуры,
даже если клавиатура не является текущим устройством
чтения. Длина буфера клавиатуры - 128 байт; если он
переполнен, будет вызвана программа ошибок.
Неудачное Если буфер клавиатуры будет полный (размер = 128
завершение символов).
Ошибки 1076 'unreadchar' несогласован из-за полного буфера
(максимум 128 символов).
Пример
Goal: unreadchar('I'),unreadchar('H')
Yes
Goal: HI
upper_lower/2
Назначение Выполняет преобразование между верхним и нижним
регистром символов клавиатуры
Обращение upper_lower(ВерхнРег,НижнРег)
Домены (string,string) , (char,char)
Шаблоны описания (вх,вх) , (вх,вых) , (вых,вх)
аргументов
Описание upper_lower выполняет преобразование между верхним и
нижним регистром для двух строк или двух символов.
(вх,вых)
Связывает НижнРег с нижним регистром, эквивалентным
ВерхнРег.
(вых,вх)
Связывает ВерхнРег с верхним регистром, эквивалентным
НижнРег.
(вх,вх)
Этот вариант потока является отличным от двух других.
Предикат согласовывается, если две строки будут
эквивалентны - если они обе будут или все в верхнем
или все в нижнем регистре. В других случаях
upper_lower (вх,вх) выполняет сравнение слов без
учета регистров.
Неудачное Смотри описание.
завершение
Ошибки Нет ошибок.
Пример
Goal:upper_lower("ОН ТАМ",LOWER)
LOWER=он там
1 Solution
Goal: upper_lower(UPPER,"да")
UPPER=ДА
1 Solution
Goal: upper_lower("дА","Да")
Yes
Goal: upper_lower(UPPER,'y')
UPPER=Y
1 Solution
Goal: upper_lower('Y',LOWER)
LOWER=y
1 Solution
window_attr/1
Назначение Устанавливает атрибут активного окна
Обращение window_attr(Атрибут)
Домены (integer)
Шаблоны описания (вх)
аргументов
Описание window_attr устанавливает для текущего окна значение
атрибута, которое связано с переменной Атрибут.
Неудачное Никогда не дает.
завершение
Ошибки Нет ошибок.
Пример
GOAL
makewindow(1,7,0,"",0,0,25,80),
window_attr(7),
write("\nСейчас атрибут - белые символы на
черном фоне"),
readchar(_),
window_attr(112),
write("\nСейчас атрибут - черные символы на
белом фоне"),
readchar(_).
window_str/1
Назначение Счиывает или записывает строку из или в активное
окно
Обращение window_str(СтрокаЭкрана)
Домены (string)
Шаблоны описания (вх) , (вых)
аргументов
Описание (вых)
Связывает переменную СтрокаЭкрана со строкой,
размещенной в настоящий момент в активном окне;
поэтому СтрокаЭкрана имеет те же линни, какие имеются
в активном окне. Длина каждой линии определяется
последним непустым символом в линии.
(вх)
СтрокаЭкрана записывается в окно согласно следующим
критериям:
- Если линий в строке больше, чем линий в окне, то
window_str записывает линии, пока пространство окна
не будет заполнено.
- Если линий в строке меньше, чем линий в окне, то
window_str заполняет остальные линии в окне
пробелами.
- Если на линии строки больше символов, чем имеется в
распоряжении на линии окна, window_str обрезает
строку в соответствующую по размерам.
- Если символов на линии меньше, чем колонок в окне,
window_str заполняет остаток линии пробелами.
Неудачное Никогда не дает.
завершение
Ошибки Нет ошибок.
Пример
goal
makewindow(1,7,0,"",0,0,25,80),
makewindow(2,7,7,"",5,10,10,50),
file_str("prolog.err",STR1),
window_str(STR1),
readchar(_),
window_str(STR2),
removewindow,
window_str(STR2).
write
Назначение Выводит данное количество аргументов
Обращение write(e1,e2,e3, .... ,eN)
Шаблоны описания (вх,вх,вх, ... ,вх)
аргументов
Описание write записывает данные константы или переменные в
текущее окно или на текущее устройство вывода. write
может быть связан с произвольным ненулевым числом
аргументов ei. Аргументы во write не могут быть
свободными переменными.
Неудачное Никогда не дает.
завершение
Ошибки 2001 Не могу выполнить операцию записи.
Пример
GOAL
write("\nВы",' ',"можете знать",
" этот предикат ").
writedevise/1
Назначение Устанавливает или дает текущее устройство вывода
Обращение writedevise(СимвИмяФайла)
Домены (symbol)
Шаблоны описания (вх) , (вых)
аргументов
Описание (вх)
Переназначает текущее устройство вывода в открытый
файл с данным СимвИмяФайла. Открытый файл может быть
одним из стандартных символических файлов или любым
пользовательским файлом, открытым для записи или для
модификации.
(вых)
Связывает СимвИмяФайла с текущим устройством вывода.
Встроенными файлами, которые могут быть использованы
для вывода, являются:
com1 записывающий в последовательный порт связи
printer записывающий в параллельный порт принтера
screen записывающий в монитор экрана
stdout записывающий в стандартный выход ДОС
stderr записывающий в файл стандартных ошибок
Неудачное Никогда не дает.
завершение
Ошибки 1012 Попытка переназначить устройство ввода в файл,
который находится или в режиме записи или в
режиме модификации.
Пример
domains
FILE = myfile
goal
openwrite(myfile,"dd.txt"),
writedevice(myfile),
write("Файл с одной линией\n"),
writedevice(screen),
write("\nСейчас пишем в экран"),
writedevice(myfile),
closefile(myfile),
writedevice(DEV),
write("\nЗаметим устройство заниси автоматически
установлено в : ",DEV),
write("\nкогда файл закрыт").
writef/*
Назначение Выполняет форматированный вывод
Обращение writef(ФорматСтр,Арг1,Арг2,Арг3, ... )
Шаблоны описания (вх,вх, .... ,вх)
аргументов
Описание writef выполняет форматированный вывод. Аргументы
Арг1 - АргN могут быть константами или переменными,
которые относятся к стандартным доменам. Формат
строки содержит обычные символы, которые печатаются
без модификации, и формат спецификаций формы %-m.pf.
Формат спецификаций означает:
-----------------------------------------------------
спецификация что она означает
-----------------------------------------------------
- (дефис) показывает, что поля выравниваются
слева; правое выравнивание действует по
умолчанию (необязательный параметр).
m поле десятичное число, описывающее
минимальный размер поля (необязательный
параметр).
.p поле описывает или точное представление
числа с плавающей точкой, или
максимальное количество напечатанных в
строке символов (необязательный
параметр).
f поле описывает другие форматы, которые
умалчиваются для данного объекта
(необязательный параметр).
-----------------------------------------------------
Например; в f поле вы можете дать описание, которое
говорит, целое число будет сформатировано как целое
без знака, или что вещественное будет сформатировано
в экспоненциальной системе счисления, или что символ
будет сформатирован как шестнадцатиричное число.
writef(формат) воспринимает следующие форматы
описания в f поле:
----------------------------------------------------
описание в
f поле что оно означает
----------------------------------------------------
f Формат вещественного в фиксированной
десятичной системе счисления (такой,
как 123.4 или 0.004321).
e Формат вещественного в
экспоненциальной форме представления.
g Формат вещественного в коротком
формате (это используется по
умолчанию для вещественного.
d Формат символов или целых чисел как
десятичное число.
u Формат символов или целых чисел как
десятичное число без знака.
x Формат символов или целых чисел как
шестнадцатиричного числа.
с Формат символов или целых чисел как
символа.
R Использует аргумент как ссылку на
номер указателя базы данных (только
ref домен).
X Использует аргумент как длинное
шестнадцатиричное число (строки,
номер указателя базы данных).
s Формат как строка (символов и строк).
----------------------------------------------------
Неудачное Смотри write.
завершение
Ошибки 1025 Слишком много аргументов в формате строки.
Пример goal
makewindow(1,23,7,"",0,0,24,80),
writef("\nДемонстрация предиката writef\n"),
A = one,
B = 330.12,
C = 4.3333375,
D = "один два три",
writef("A = '%-7' \nB = '%8.1e'\n",A,B),
writef("A = '%' \nB = '%8.4e'\n",A,B),
writef("C = '%-7.7g' \nD = '%7.7'\n",C,D),
writef("C = '%-7.0f' \nD = '%0'\n",C,D),
writef("char: %c, decimal: %d, hex: %x,
unsigned: %u",97,'a',33,-1).
- Справочное руководство по турбо прологу 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
- Заключение