Программы и модули
Исходные файлы TMT Паскаля содержат модули, программы, или то и другое.
Модуль - это совокупность процедур, функций и данных, которые являются
доступными для других программ или модулей. Модули помогают в
модульном дизайне приложений и подобны библиотекам. Модули не могут
выполненяться непосредственно (как программы). Программа состоит из одной или более
процедур или функций. Главная процедура программы выполняется во
время выполнения программы.
Модули
Программы
Модули
Модули могут компилироваться отдельно и имеют следующую форму:
unit ИмяМодуля;
interface
[Описания]
implementation
[Описания]
[
begin
[Оператор [; Оператор]]
]
end.
ИмяМодуля - имя модуля. Это то же самое имя, которое Вы будете
использовать в программах при ссылке на модуль. В каждом модуле есть три раздела.
Раздел Interface
Раздел
Interface содержит описания типов, констант, переменных,
процедур и функций, которые являются доступными для других программ
и модулей. При объявлении процедур и функций в разделе
Interface
требуется написать только заголовок процедуры. Эти описания подобны
использованию пункта
Forward, который сообщает TMT Паскалю, что
полное описание будет использовано далее в программе. Полное
описание процедуры осуществляется в разделе
Implementation. Локальные
переменные и процедуры, которые не должны быть доступны вне модуля,
могут быть объявлены в разделе
Implementation.
Раздел Implementation
Раздел
Implementation содержит локальные типы, константы,
переменные, метки, процедуры и функции. Процедуры и функции являются
локальными по отношению к модулю, если их имя не объявлено в разделе
Interface. Раздел
Implementation содержит полное
описание процедур и функций.
Инициализация модуля
Раздел инициализации начинается сразу после зарезервированного слова
Begin. Этот блок кода выполняется главной программой, которая
использует модуль. Он выполняется перед главным блоком кода.
Каждый модуль заканчивается зарезервированным словом
End, после
которого следует точка ".". Зарезервированные слова
Interface
и
Implementation должны обязательно присутствовать в модуле. Раздел
инициализации является дополнительным (не обязательным).
В Borland Pascal частные процедуры компилируются как ближние, в то
время как общедоступные процедуры являются дальними. Поэтому частные
процедуры более эффективны. В TMT Паскале и частные и общедоступные
процедуры являются ближними и одинаково эффективны.
Программы
Программы отличаются от модулей. Общий формат имеет следующую форму:
[program Идентификатор;]
[uses ИмяМодуля [,ИмяМодуля]]
[Описания]
begin
оператор [; оператор]
end.
Идентификатор после оператора
program объявляет имя программы.
Файл Программы заканчивается словом
end, после которого следует
точка ".".
Оператор
uses сообщает TMT Паскалю, какие модули использует
программа.
ИмяМодуля - имена модулей, перечисленные после оператора
uses. Эти модули загружаются TMT Паскалем. Процедуры и переменные,
описанные в программе, генерируются в выполняемый код. Все типы,
константы, переменные и функции, объявленные в разделе
Interface
модулей, доступны для программы.
Весь текст, который следует за заключительным словом
end в
модуле или программе, игнорируется TMT Паскалем.
Новая особенность! В TMT Паскале главная программа может
содержать части
interface и
implementation. Это
позволяет получить доступ к переменным главной программы из других
модулей:
// Test program
program Test;
interface
var global: Integer;
implementation
uses UnitTest;
begin
UnitTest.Write;
end.
// Test unit
unit UnitTest;
interface
procedure Write_global;
implementation
uses Test;
procedure Write_global;
begin
Write(test.global);
end;
end.
Важно! Здесь имя файла, который содержит текст главной
программы или модуля, должно быть идентично с именем, которое следует
за ключевым словом
Program.