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

Как и программа, файл текста модуля имеет расширение ".pas". Расширение модуля после компиляции - ".tpu". Все модули, подключаемые к программе, в процессе ее компоновки объединяются друг с другом и с программой в один исполняемый файл с расширением ".exe".

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

Каждый модуль состоит из 3 частей - интерфейсной секции, а также секций реализации и инициализации, которые могут быть пустыми или отсутствовать.

Если модуль содержит в интерфейсной части только переменные, типы и константы, и не содержит процедур и функций, то секция реализации может быть пуста.

Если модуль не требует никаких инициирующих действий, то секция инициализации может отсутствовать.

В интерфейсной секции модуля находятся: подключение требуемых модулей (то есть тех, на содержимое которых имеются ссылки в данной секции), разделы объявления переменных, типов, констант, а также заголовков процедур и функций, доступных для других модулей и главной программы. Так как метки могут использоваться только внутри того блока, в котором они определены, то их объявление в интерфейсной секции лишено смысла и запрещено синтаксисом ТП.

Объявление заголовков процедур и функций в интерфейсной секции эквивалентно forward и far объявлениям.

Например:

UNIT MyUnit; {заголовок модуля}

interface {начало интерфейсной секции}

uses Graph; {подключение модуля Graph }

Const DefaultColor=White;{определение константы, значение которой является, в свою очередь, константой из модуля Graph}

Type Point3D=record x,y,z:real end; {определение типа}

var Point1,Point2: Point3D;{объявление переменных}

VarR:Real;

procedure Proc1(x,y:byte);{объявление заголовков процедур и функций}

function Func:boolean;

implementation {завершение интерфейсной секции, начало секции реализации}

Следующая страница ->
Последнее изменение: Вторник 1 Март 2011, 16:18