Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Модульное программирование

Читайте также:
  1. Программирование
  2. Профессии, связанные с построением математических и компьютерных моделей, программированием, обеспечением информационной деятельности людей и организаций
  3. Что такое социальное программирование?

 

Программа в Turbo Prolog’е может состоять из отдельных модулей. Модули могут быть описаны, отредактированы отдельно, а затем связаны в программу. В модулях все имена и области значений считаются локальными (локальный – иначе местный), т.е. в разных модулях можно использовать одинаковые имена.

Всякий модуль определяется посредством своего первого имени (без типа файла). Все модули входят в одну программу, которая называется проект. Имя проекта должно быть задано в начале каждого модуля следующим предикатом:

Project «newproject» – уникальное (свое) имя

Файл, содержащий проект, имеет специальное расширение prj. Среди модулей, входящих в проект, только один модуль может иметь имя «global.pro» (обязательно – это главный)

Если программа состоит из модулей, то Turbo Prolog ищет заданные, определяющим словом Project, имена модулей, которые должны быть обработаны. Для этого необходимо, чтобы в библиотеке имелся специальный файл, который имеет имя librarian и который содержит список имен модулей в виде: имя1 + имя2 + имя3+ …

Для составления этого файла в меню SETUP имеется подменю librarian. При создании проекта автоматически создается символьная таблица, которая сохраняется в файле obj – оглавление и имеет расширение sym.

Для компиляции и связывания модулей должны быть выполнены следующие условия.

1. Всякий модуль должен начинаться с директивы Project.

2. Только один модуль может иметь имя global.pro.

3. Только один из модулей может иметь раздел goal.

4. Модули должны компилироваться с опцией to obj.

Последний модуль компилируется с to exe. В этом случае автоматически запускается редактор связи и создается исполнимая программа. Редактировать, значит связать все файлы в единое целое.

Процесс связывания можно реализовать с помощью файла проекта и ВАТ-файла PLINK следующим образом:

PLINK NEW proj, где NEW PROJ –имя проекта файла.

PLINK может быть использована из под DOS. В ней могут быть заданы групповые имена, т.е. параметры %1, %2, %3 (вместо % можно ставить имя):

%1 – имя проекта или модуля,

%2 – имя устройства и путь, задающий оглавление, в которое будет записан exe файл,

%3 – имя устройства и путь к каталогу, где располагаются следующие программы: prolog.lib, init. Obj.

При запуске из Turbo Prolog’а в режиме автоматического связывания эти параметры принимают следующие значения:

1. имя проекта или программы,

2. текущий путь exe оглавления системы Turbo Prolog,

3. текущий путь оглавления Turbo Prolog’а.

При запуске из-под DOS обязательно следует задать первый параметр. По умолчанию 2 и 3 параметры будут использовать текущие оглавления. Команда PLINK проверяет существует ли файл с расширением sym и выбирает связывать проект или редактировать один объектный файл.

Программы, которые взаимодействуют через границы модулей, должны использовать предикаты из специальной секции: global predicates, и иметь общие данные из секции: global domains.

При описании глобальных предикатов они записываются в следующем виде:

predicate (d1, d2,…dn) – (f, f, f)(f, f,…f), где d1, d2,…dn – глобальные области значений, группа f – задает потоковый шаблон.

Каждый модуль исходного проекта должен содержать одни и те же глобальные предикаты и одну и ту же глобальную область значений. Поэтому его записывают в один файл и подключают ко всем остальным с помощью оператора include.

Тогда общая структура модуля будет иметь следующий вид:

domains

global domains

database

predicates

global predicates

goal

clauses

Запишем пример содержимого файла проекта под именем coma.prj

main1+

delo+

и два файла *.pro

main1.pro

project «coma»

global domains

text=string

global predicates

write1(text)

predicates

turbo

goal

turbo

clauses

turbo:–write(“gggg”).

Файл delo.pro

project «coma»

global domains

text=string

global predicates

write1(text)-(i)

clauses

write1(X):–write(X).

Все файлы следует поместить в каталог, где находится файл prolog.exe со всеми своими модулями. Затем производится компиляция в режиме compile project. Откомпилированные модули записываются в директорию, куда распределяются файлы EXE (туда помещаются файлы coma.exe, coma.sym, delo.obj, main1.obj).

 


Дата добавления: 2015-09-06; просмотров: 87 | Нарушение авторских прав


Читайте в этой же книге: Расширенные сети переходов | Глубинные (семантические) падежи | Пакет Turbo Prolog | Поиск решений | Метод отсечения и отката (ОО). | Методы организации рекурсии | Отладка программы и обнаружение ошибок | Создание графического режима. | Работа с символами и строками | Специальные строки |
<== предыдущая страница | следующая страница ==>
Создание динамических баз данных| Решение задачи о волке, козе и капусте

mybiblioteka.su - 2015-2024 год. (0.009 сек.)