Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

1.3.4. Модули

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

Модуль имеет структуру:

Unit <имя модуля>; //заголовок модуля

Interface

<интерфейсная часть>

Resourcestring //не обязательный

<строки ресурсов>

Implementation //не обязательный

<исполняемая часть>

Initialization //не обязательный

<инициирующая часть>

Finalization //не обязательный

<завершающая часть>

End. //окончание тела модуля

Заголовок модулясостоит из зарезервированного слова UNIT и следующего за ним имени модуля. Это имя должно совпадать с именем исходного текста. Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением:Uses <список имен модулей через запятую>.

Имя модуля можно указывать в виде:

<имя модуля> [In‘<имя файла с модулем>.pas’]

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

Строки ресурсов содержат описания строк ресурсов (п.1.3.1.2).

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

Инициирующая частьсодержит операторы, которые выполняются до передачи управления основной программе. Например, в них могут инициализироваться переменные, открываться файлы.

Завершающая часть содержит операторы, выполняемые один раз при любом нормальном или аварийном завершении программы. Эта часть запрещена, если отсутствует инициирующая часть.

Примерсоздания модуля Cmplxс процедурами сложения и вы­чи­тания комплексных чисел:

Unit Сmplx; //имя модуля

Interfac e //интерфейсная часть с объявлением типов и процедур

Type complex = record re, im : real; end; //объявления типа

Procedure ADDC (x, у : сomplex; var z: complex ); //объявление процедуры

Procedure SUBC (x, у : сomplex; var z: complex );//объявление процедуры

Implementation //исполнимая часть с текстами процедур

ProcedureADDC; begin z.re: =x.re+y.re; z.im:= x.im+y.im; end;//процедура

ProcedureSUBC; begin z.re:= x.re‑y.re; z.im: =x.im‑y.im; end;//процедура

End. //окончание модуля

1.3.5. Компилятор

1.3.5.1. Общее описание компилятора

Существуют два компилятора: встроенный в интегрированную среду разработки Delphiи автономныйDcc32.Exe.

Автономный компилятор вызывается из командной строки DOSв виде:Dcc32 [<опции>] <имя файла> [<опции>]. Описание опций можно получить на экране, если в командной строке указать толькоDcc. Каждая опция начинается с символа «/». Если расширение файла не указано, то предполагается расширение .Dprили .Pas(при отсутствии файла проекта). Если файл является программой, библиотекой, пакетом или модулем, то создается, соответственно, исполняемый файл .Exe, библиотека .Dll, пакет.Bpl, объектный модуль .Dcu.

Управление компилятором осуществляется директивами. Ди­рек­тива заключается в фигурные скобки и начинается с символа «$». Су­щест­вует три типа директив: ключевые, параметры и условной компи­ля­ции.

Ключевые директивывключают или выключают соответствующие возможности компилятора и имеют две формы записи: сокращенную и длинную. Сокращенная запись директивы состоит из односимвольного имени директивы и знака «+» (включение) или знака «‑« (выключение). Длинная запись состоит из имени директивы и слов «On» (включение) или «Off» (выключение).Пример.{$I+} или {$OICHECKSON}.

Ключевые директивы могут объединяться в группы через запятые ({SB+,R‑,S‑}). Ключевые директивы, расположенные до начала объявления переменный, являются глобальными и действуют на весь процесс компи­ляции; остальные директивы ‑ локальные.

Директивы параметровопределяют значения различных параметров компилятора (например, {$Lимя файла}).

Директивы условной компиляциипозволяют исключать из компиляции различные фрагменты программы в зависимости от условий.

Настройка умалчиваемых значений ключевых директив осуществля­ет­ся диалоговой командой Project/Options/Compiler.