Модуль - это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части.
Модули представляют собой прекрасный инструмент для разработки библиотек прикладных программ и мощное средство модульного программиро¬вания. Принцип модульного программирования заключается в том, что исходная задача разбивается на более простые подзадачи. Преимущество модулей в том, что они в отличие от процедур и функций хранятся в памяти компьютера в откомпилированном виде и поэтому выполняются быстрее.
Структура модуля в языке Турбо Паскаль
МОДУЛЬНЫЕ ПРОГРАММЫ Основные определения
Стандартный Паскаль не предусматривает механизмов раздельной компиляции частей
программы с последующей их сборкой перед выполнением. Для размещения в памяти
большой программы может не хватить одного сегмента памяти. Поэтому разработчики
Турбо Паскаля для устранения этих недостатков включили в язык механизм так
называемых модулей.
Модуль это автономно компилируемая программная единица, включающая в себя
различные компоненты раздела описаний (типы, константы, переменные, процедуры и
функции) и, возможно, некоторые исполняемые операторы инициирующей части.
Модули представляют собой прекрасный инструмент для разработки библиотек
прикладных программ и мощное средство модульного программирования. Принцип
модульного программирования заключается в том, что исходная задача разбивается на
более простые подзадачи. Преимущество модулей в том, что они в отличие от процедур и
функций хранятся в памяти компьютера в откомпилированном виде и поэтому
выполняются быстрее.
Структура модуля
Сам по себе модуль можно разделить на несколько разделов: заголовок; интерфейсная
часть; исполняемая часть; инициализационная часть.
Заголовок модуля и связь модулей друг с другом
Заголовок модуля состоит из зарезервированного слова UNIT и следующего за ним имени
модуля. Здесь же могут присутствовать директивы компилятору, дающие общие
установки/соглашения для всего модуля. Для правильной работы среды Турбо Паскаля и
возможности подключения средств, облегчающих разработку крупных программ, это имя
должно совпадать с именем дискового файла, в который помещается исходный текст
модуля.
Стандартные модули
В Турбо Паскале имеются восемь стандартных модулей: SYSTEM, DOS, CRT, PRINTER,
GRAPH, OVERLAY, TURBO3 и GRAPH3. Модули GRAPH, TURBO3 и GRAPH3
выделены в отдельные TPUфайлы, а остальные входят в состав библиотечного файла
TURBO.TPL. Лишь один модуль SYSTEM подключается к любой программе
автоматически, все остальные необходимо объявлять, указывая их за словом USES.
Интерфейсная часть
Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части
содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и
подпрограмм), которые должны стать доступными основной программе и/или другим
модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается
только их заголовок. Без информации о формальных параметрах блоков нельзя правильно
собрать программу из модулей. Кроме того, в интерфейсном разделе могут быть описаны
глобальные элементы: константы, переменные, типы, т.е. некоторые элементы,
используемые в основной программе и не обязательно используемые в блоках данного
модуля. Порядок появления различных разделов объявлений и их количество могут быть
произвольными. В интерфейсной части модулей нельзя использовать опережающее
описание.
Исполняемая часть
Исполняемая часть начинается зарезервированным словом IMPLEMENTATION и
содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут
объявляться локальные для модуля объекты вспомогательные типы, константы,
переменные и блоки, а также метки, если они используются в инициирующей части.
Инициирующая часть
Инициирующая часть завершает модуль. Она может отсутствовать вместе с начинающим ее
словом BEGIN или быть пустой тогда за BEGIN сразу следует признак конца модуля
END.(с точкой).
В инициирующей части размещаются исполняемые операторы, содержащие некоторый
фрагмент программы. Эти операторы исполняются до передачи управления основной
программе и обычно используются для подготовки ее работы. Например, в них могут
инициироваться переменные, открываться нужные файлы, устанавливаться связи с другими
ПК по коммуникационным каналам и т.п.
Компиляция модулей
В среде Турбо Паскаля имеются средства, управляющие способом компиляции модулей и
облегчающие разработку крупных программных проектов. Результатом компиляции
модуля является файл с тем же именем и расширением имени .TPU, который заносится на
диск, тогда как результат компиляции программы в целом (ЕХЕфайл) может оставаться в
основной памяти. При его получении проверяется правильность обращения к блокам
модуля (вот для чего нужна интерфейсная часть).Make F9
Compile
AltF9
Build Destination Memory/Disk
Общий объем модульной программы может быть много более 64 кбайт, но каждый .TPU
файл не может превышать 64 кбайт. Вызовем подменю COMPILE:
Здесь первые три режима это режимы компиляции. Они отличаются только способом
связи компилируемого модуля или основной программы с другими модулями,
объявленными в предложении USES.
При компиляции модуля или основной программы в режиме COMPILE все упоминавшиеся
ранее модули в предложении USES должны быть предварительно откомпилированы и
помещены в одноименные файлы с расширением TPU.
Если в программе (см. пример 5.2) имеется предложение
USES Triangle, Printer;
Primary file ...
где Printer стандартный модуль, то на диске в каталоге, объявленном опцией UNIT
DIRECTORIES, уже должен находиться файл TRIANGLE.TPU. Этот файл создается
автоматически в результате компиляции модуля.