Студопедия — Модульное программирование
Студопедия Главная Случайная страница Обратная связь

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

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






 

Программа в 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-10-19; просмотров: 527. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия