<описание скрытых объектов>
[ Begin {Initialization}
<операторы инициализации>
{ Finalization
<завершающие операторы> } ]
end.
Например, модуль, подключаемый при работе с комплексными числами:
Unit COMPLEX;
Interface
Type Complex = Record
Re,Im:Real;
end;
Function CADD (A,B:complex):complex;
Function CMUL (A,B:complex):complex;
Function CDIV (A,B:complex):complex;
... ...
Implementation
Function CADD;
... {тело функции}
Function CDIV;
Var X:Real; {скрытая переменная}
... ...
end.
При использовании процедур и функций есть некоторые особенности. Заголовок подпрограммы содержит всю информацию, необходимую для ее вызова: имя, количество и тип параметров, и для функций тип результата. Тело же подпрограммы содержит блок, раскрывающий его алгоритм. Можно считать, что заголовок подпрограммы является ее интерфейсом, а тело – реализацией. Поэтому в интерфейсной части модуля должны быть представлены только заголовки процедур и функций, доступные для других программ, по аналогии с опережающим описанием. Полные же описания с сокращенным заголовком помещают в раздел реализации.
Таким образом, программа может связываться с модулем через описания видимых объектов, то есть через интерфейс модуля. Поэтому, если необходимо расширить модуль или изменить реализацию какой-либо подпрограммы, и если интерфейс модуля при этом не меняется, то такое изменение никак не отразится на использующих программах.