Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Interface

Интерфейсная ("общедоступная") часть

Implementation

Исполняемая часть

Begin

Инициализирующая часть

End.

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

unit Имя_модуля;

Interface

Implementation

End.

Имя модуля в заголовке должно совпадать с базовым именем файла, содержащим исходный текст модуля – это позволяет компоновщику связывать модули с программой и с другими модулями. Длина имени не должна превышать 8 символов.

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

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

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

Имеются три вида компиляции многомодульной программы. Все они задаются в меню Compile интегрированной среды: Compile (Alt+F9) – компиляция программы или модуля в текущем окне редактора; Make (F9) – выборочно перекомпилируются все модули данного проекта (комплекса), в текст которых внесены изменения; Build – перекомпилируются все модули данного проекта, независимо от того вносились в них изменения или нет.

Подключение модулей происходит в порядке их перечисления в разделе uses. При переходе к очередному модулю предварительно отыскиваются все модули, на которые он ссылается. При выполнении программы в этом же порядке срабатывают инициализирующие части модулей. Ссылки модулей друг на друга часто образуют древовидную структуру, корнем которой является главная программа. Явные или косвенные ссылки модуля на себя запрещаются. Например, недопустимы следующие объявления:

unitA; interface usesB; implementation end. unitB; interface usesA; implementation end.

Это ограничение можно обойти, если "спрятать" раздел uses в исполняемую часть модуля:

unitA; interface implementation usesB; end. unitB; interface implementation usesA; end.

Дело в том, что в Турбо Паскале разрешаются ссылки на частично откомпилированные модули; то есть компиляция проходит в два этапа: сначала компилируется интерфейсная часть, а затем – всё остальное, после слова implementation.

Некоторые стандартные модули Турбо Паскаля входят в состав библиотеки turbo.tpl (System, Dos, Crt, Printer, Overlay), а другие – хранятся в отдельных.tpu файлах (Graph, Strings и т. д.). При этом модуль System (содержит подпрограммы ввода/вывода, обработки строк, математические и другие функции) всегда подключается автоматически, а остальные, при необходимости, – указываются в разделе uses

 


Дата добавления: 2015-07-15; просмотров: 132 | Нарушение авторских прав


Читайте в этой же книге: Глоссарий | Краткий курс лекций | Хранение информации | Классификация структур данных | Операции над структурами данных | Операции. Выражения | Лекция 3 Структура программы. | Безусловного перехода, | Лекция 14. Алгоритмы поиска и выборки. | Бинарный поиск |
<== предыдущая страница | следующая страница ==>
Лекция 11. Подпрограммы-функции.| Лекция 13. Ссылочный тип.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)