- 61 -
* Если ваша программа вызывает библиотеки Турбо Пролога , то
вы должны компилировать модули в выключенном режиме размещения
переменных в регистрах (-r-).
* Генерация подчеркивания должна быть отключена (-u-).
б) при компоновке объектных модулей
* INIT.OBJ должен быть первым объектным файлом компоновки.
(Этот модуль инициализации Турбо Пролога находится на диске биб-
лиотек Турбо-Пролога).
* Если вам необходимы подпрограммы из библиотек Турбо Си, то
используйте CL.LIB, а, если вы используете арифметику с действи-
тельными числами (real arithmetic), то еще - EMU.LIB и MATHL.LIB.
Командная строка компоновщика должна иметь вид:
tlink init <Основной.obj> <Другие.obj> <Основной.sym>,
<Основной.exe>,,
prolog+<Библиотеки.lib>+cl [+emulib+mathl]
В дополнение к предыдущим правилам, вам нужно запомнить сле-
дующее:
* Функции Турбо Пролога могут вызывать функции, написанные
на Турбо Си, по аналогии со встроенными в Турбо Пролог предиката-
ми (функциями). Однако, Турбо Си не может содержать вызовов моду-
лей Турбо Пролога.
* Все вызовы функций из библиотеки Турбо Си должны иметь
префикс нижнее подчеркивание ( _ ).
Замечание: Все имена библиотечных функций Турбо Си содержат
префикс нижнее подчеркивание. Поэтому, если генерация нижнего
подчеркивания выключена, то к вызову библиотечных функций должен
явно добавляться символ нижнего подчеркивания. Определяемые же
пользователем функции не нуждаются в этом символе.
* Функции Си, вызываемые Турбо Прологом, не будут иметь
возвращаемых значений и должны быть определены как void. Шаблон
на аргументы должен быть специфицирован в глобальных объявлениях
предикатов Турбо Пролога. Так:
factorial(integer,real) - (i,o) language c
позволяет определить Турбо Прологу, что factorial - есть функция
от двух аргументов: первый - integer (целый), второй - real (с
плавающей точкой). Конструкция (i,o) указывает, что первый аргу-
мент (integer) является входным, а второй - указатель на число с
плавающей точкой, которому будет присвоено значение факт ориала.