10 Модули
10.1 Что такое модуль
Паскаль обеспечивает доступ к большому количеству встроенныхконстант, типов, переменных, процедур и функций. Но в программах они редко используются все сразу. Поэтому они разделены насвязанные группы, называемыемодулями. Поэтому можно использовать только те модули, которые необходимы в программе.
Программный модуль—набор описанийконстант, типов, переменных, процедур и функций. Каждый модуль аналогичен отдельной программе на Паскале, он может иметь иосновное тело, которое вызывается до передачи управления основной программе и осуществляет необходимуюинициализацию. Модуль представляет собойбиблиотеку описаний, которую можно вставить в свою программу и которая позволяет разбить программу на части,компилируемые отдельно.
Кроме использования стандартных модулей, которые поставляются вместе с Паскалем, можно конструировать свои (пользовательские)модулипо тем же правилам, по которым построены стандартные модули. Модули пользователя используются для разработкибиблиотек прикладных программ. Таким образом,
модуль— это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части.
Компилятор Паскаля размещает программный код каждого модуля в отдельном сегменте памяти длиной 64 Кб, а количество одновременно используемых модулей ограничивается лишь доступной памятью.
Модуль компилируется в файл с расширением .tpu.
10.2 Стандартные модули
В Паскале имеется 8 стандартных модулей:
System
Dos
Crt
Printer
Graph
Overlay
Turbo3
Graph3.
Модули Graph,Turbo3иGraph3 выделены в отдельныеtpu-файлы, а остальные входят в состав библиотечного файлаTurbo.tpl. Лишь модульSystemподключается к любой программе автоматически, все остальные становятся доступны только после указания их имен разделеUses.
Назначение стандартных модулей:
в модуль Systemвходят все процедуры и функции стандартного языка программирования Паскаль, а также встроенные процедуры и функции, которые не вошли в другие стандартные модули;
модуль Printerделает доступным вывод текстов на принтер;
в модуле Crtсосредоточены процедуры и функции, обеспечивающие управление текстовым режимом работы экрана;
модуль Graphсодержит большой набор типов, констант, процедур и функций для управления графическим режимом работы экрана;
в модуле Dosсобраны процедуры и функции, открывающие доступ программам к средствам дисковой операционной системыMs-Dos;
модуль Overlayиспользуется при разработке громоздких программ с перекрытиями;
модули Turbo3иGraph3введены для совместимости с ранней версией 3.0 системыTurboPascal.
10.3 Структура модуля
Модуль обеспечивает некоторый набор средств с помощью процедур и функций при поддержке констант, типов и переменных. Но действительная реализация этих средств скрыта в силу того, что модуль разделен на две секции:интерфейсаиреализации(см. структуру модуля).
UNIT имя_модуля ; {заголовок модуля }
{ $директивы_компилятора }
INTERFACE {интерфейсная часть: открытые описания }
Uses . . . ; { имена подключаемых модулей }
Const . . . ; { раздел описания констант }
Type . . . ; { раздел описания типов }
Var . . . ; { раздел описания переменных }
Procedure имя ( параметры ) ; { заголовки процедур }
. . .
Function имя ( параметры ) : тип_результата ; { заголовки функций }
. . .
IMPLEMENTATION {исполняемая часть: зарытые описания}
Uses . . . ;
Const . . . ;
Type . . . ;