Лекция № 29. Понятие модуля. Структура модуля
Библиотечный модуль оформляется как отдельная программная единица, содержащая различные элементы раздела описаний и операторы. В состав модуля входят описания констант, переменных, типов, процедур, функций.
Процедуры и функции, содержащиеся в модуле, подключаются к программе на этапе компоновки. Хранится модуль, как в исходном, так и в откомпилированном виде (файлы pas и tpu соответственно).
Таким образом, подпрограммы, используемые неоднократно, удобно оформлять в виде отдельных модулей.
В ходе своей работы программист накапливает целую коллекцию таких полезных модулей – свою личную библиотеку.
В этом и заключается один из принципов современного программирования – принцип модульности.
Структура модуля
Исходный текст модуля делится на несколько разделов:
- Заголовок;
- Интерфейсная часть;
- Исполняемая часть;
- Инициализирующая часть.
Unit <имя модуля>;
Interface
….
{Раздел открытых описаний – интерфейсная секция}
….
Implementation
{раздел закрытых описаний}
Begin
…..
{секция инициализации}
…..
End.
Модуль начинается с зарезервированного слова Unit, за которым следует имя модуля. Далее следует зарезервированное слово Interface, обозначающее начало секции, видимой тем программам или модулям, в которых используется данный модуль.
В случае, если данный модуль использует другие модули, после ключевого слова Interface необходимо поместить зарезервированное слово uses и список используемых модулей. Интерфейсный раздел – часть в модуле между словами Interface и Implementation. В этом разделе можно помещать константы, переменные, процедуры и функции, которые становятся "видимыми" для всех программ и модулей, использующих данный модуль. Но тела этих процедур и функций находятся в секции реализации, начинающейся после слова Implementation.
В секции реализации могут находиться свои описания, невидимые для программ и модулей, использующих данный модуль. Описанные в секции интерфейса константы, типы, переменные, процедуры и функции являются видимыми в секции реализации.
Те процедуры и функции, которые описаны в интерфейсной части, описываются в секции реализации еще раз, причем их заголовок должен быть точно таким же, как тот, который указан в секции интерфейса.
Секция инициализации располагается между словами beginиend. Если слово begin отсутствует, то отсутствует и секция инициализации.
В секции инициализации помещаются операторы, выполняющиеся до передачи управления основной программе.
Эти операторы обычно используются для подготовки программы к работе.
В секции инициализации могут инициализироваться переменные, открываться файлы и т.д. При выполнении программы, использующей некий модуль, секция инициализации этого модуля вызывается перед запуском основного тела программы. При использовании нескольких модулей, их секции инициализации вызываются в порядке, указанном в операторе uses.
При использовании модулей в программировании следует знать, что:
1. Имя модуля служит для его связи с другими модулями и основной программой, поэтому заголовок модуля опускать нельзя;
2. Имя модуля должно совпадать с именем его файла, в который помещается исходный текст модуля, что очень важно;
3. В интерфейсной части только общедоступные объявления, т.е. Доступные в любой программе или модуле, к которым будет подключен данный модуль;
4. Исполняемая часть содержит полное описание подпрограмм, объявленных в интерфейсной части. В ней могут располагаться также вспомогательные типы, константы, переменные процедуры и функции;
5. Все вспомогательные элементы, объявленные в исполняемой части, называются скрытыми, т.к. Они доступны только в данном модуле;
6. Инициализирующая часть завершает модуль. Она может отсутствовать вместе со словом begin или быть пустой – тогда за begin должно следовать слово end с точкой.
7. В инициализирующей части могут размещаться операторы, выполняющие какие-то действия еще до начала выполнения основной программы, например открытие файлов или задаваться начальные значения переменным.
Дата добавления: 2017-11-04; просмотров: 2710;