Инициализирующая часть модуля.
Исполняемая часть модуля.
Открывается с помощью предложения IMPLEMENTATION и состоит из тел (блоков), процедур и функций, объявленных в интерфейсной части, но здесь заголовки подпрограмм могут быть сокращенными, т.е. без указаний типов функций и указания списка формальных параметров.
В исполняемой части модуля могут быть описаны локальные для этого модуля константы, типы, переменные, а также метки, если они используются в инициализирующей части модуля, причем все они недоступны основной программе и/или модулям, кроме того в исполняемой части может содержаться полное описание тех дополнительных локальных подпрограмм, которые не были объявлены в основной программе, но необходимы для работы подпрограмм функций, объявленных в интерфейсной части.
Если в блоках подпрограмм (глобальных и локальных) при описании локальных типов и переменных необходимо сослаться на соответствующее описание из интерфейсных частей других модулей и эти модули (их имена не попали в USES интерфейсной части данного модуля), то их следует перечислить в USES после IMPLEMENTATION.
Все локальные объекты модуля (константы, переменные, подпрограммы, а также сам программный код, как результат компиляции данного модуля) помещаются в 64 кбт, выделенные средой этому модулю.
Если исполняемая часть модуля пустая, то должно быть записано только предложение IMPLEMENTATION.
Завершает текст модуля. Содержит исполняемые операторы, программирует "разовые" подготовительные действия. Эти операторы выполняются 1 раз перед выполнением основной программы (при ее загрузке в оперативную память, в момент запуска основной программы, но до передачи ее управления). Выполнение рабочей программы всегда начинается с выполнения операторов инициализирующих частей, используемых модулями, и лишь за тем выполняется основной блок основной программы. Поэтому при подключении модуля к модулю инициализирующей части не будет.
Операторы инициализирующей части:
1) Инициализирующие какие-то переменные (например, заполняются стартовые значения библиотечных переменных)
2) Устанавливающие связь файловых переменных с теми или иными файлами (с помощью ASSIGN)
3) Инициализирующие такие текстовые файлы (с помощью процедур RESET или WRITE)
4) Устанавливающие связи с другими ЭВМ по коммуникационным каналам
5) Осуществляющие другие вспомогательные действия
Инициализирующая часть модуля открывает BEGIN, после которого размещаются все операторы инициализирующей части модуля. Завершает запись инициализирующей части - END.
Если инициализирующая часть модулю не нужна, то она может отсутствовать вместе с BEGIN и END.
Итак, в самом общем случае, в Паскаль программе модульной структуры модуль имеет структуру:
UNIT <имя модуля>;
INTERFACE {начало интерфейсной части}
USES <имена подключаемых (при объявлениях) модулей>;
CONST <описание библиотечных констант>;
TYPE <описание библиотечных типов>;
VAR <описание библиотечных переменных>;
<заголовки библиотечных процедур и функций>;
IMPLEMENTATION {начало раздела реализаций}
USES <имена подключаемых (при реализации) модулей>;
LABEL <описание меток раздела инициализации>;
CONST <описание локальных констант>;
TYPE <описание локальных типов>;
VAR <описание локальных переменных>;
<описания (полные) локальных подпрограмм>;
<описания библиотечных подпрограмм с сокращенными заголовками>;
BEGIN {начало раздела инициализации}
<исполняемые операторы>;
END. {конец раздела инициализаций модуля и граница всего модуля}
Структура пустого модуля, поясняющая представление некоторой ее части:
UNIT Pystoy;
INTERFACE
IMPLEMENTATION
END.