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

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

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






 

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



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Роль органов чувств в ориентировке слепых Процесс ориентации протекает на основе совместной, интегративной деятельности сохранных анализаторов, каждый из которых при определенных объективных условиях может выступать как ведущий...

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

Эндоскопическая диагностика язвенной болезни желудка, гастрита, опухоли Хронический гастрит - понятие клинико-анатомическое, характеризующееся определенными патоморфологическими изменениями слизистой оболочки желудка - неспецифическим воспалительным процессом...

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