- •Некоторые особенности языка TurboPascal
- •Расширения базового синтаксиса
- •Расширения типов данных
- •Объявления переменных
- •Типизированные константы
- •Выражения и операции
- •Операторы
- •Процедуры и функции
- •Модульное программирование в TurboPascal
- •Общие понятия о модулях
- •Структура модуля
- •Заголовок модуля
- •Раздел интерфейса
- •Раздел реализации
- •Раздел инициализации
- •Описание подключаемых модулей (Uses)
- •Локализация (видимость) имен
- •Компиляция и компоновка модулей
- •Пример программы с модулем
- •Библиотеки модулей
- •Стандартные модули TurboPascal
- •Перечень стандартных модулей
- •Ввод-вывод в TurboPascal
- •Понятие об объектно-ориентированном программировании
- •Концепция объектно-ориентированного программирования
- •Синтаксис объектов в TurboPascal
- •Использование объектов в программе
Раздел интерфейса
Раздел интерфейса следует сразу за заголовком модуля и начинается словом Interface. В этом разделе помещаются описания, компонентов, которые должны быть "видимы" (то есть, доступны для использования) за пределами модуля – в программе или другом модуле, к которому данный модуль подключается. В этом разделе нет исполняемых операторов – есть только описания. Здесь можно описывать константы, типы данных, переменные, заголовки процедур и функций.
<раздел интерфейса>::= "Interface" [<описание Uses>] {<описание констант>|<описание типов>| <описание переменных>| <описание заголовков процедур и функций>}.
Назначение описания Uses и его формат описаны ниже. Структура остальных описаний – такая же, как в стандартном Паскале с расширением синтаксиса, принятом в Turbo Pascal. Процедуры и функции в этом разделе не описываются – только их заголовки. Это похоже на опережающее описание, только не используется слово Forward.
Метки здесь не описываются (см. синтаксис меток).
Все константы, типы и переменные, описанные в этом разделе, а также процедуры и функции, заголовки которых описаны здесь, доступны в программе, к которой модуль подключен, как если бы все эти описания были сделаны в самой программе.
Все описания, сделанные в разделе интерфейса, доступны от места описания до конца модуля, если они не были переопределены в процедурах и функциях.
Раздел реализации
Этот раздел следует сразу после раздела интерфейса, и начинается словом Implementation. Здесь помещаются описания констант, типов, переменных, процедур и функций, которые, по мнению разработчика модуля, лучше спрятать от пользователей модуля (например, для лучшей изоляции данных модуля от ошибок в программе, использующей модуль). Также здесь помещаются полные описания процедур и функций, заголовки которых были описаны в разделе интерфейса.
<раздел реализации>::= "Implementation" [[<описание Uses>] {<описание констант>|<описание типов>| <описание переменных>| <описание процедур и функций>}].
При описании процедур и функций, заголовки которых описаны в разделе реализации, можно не повторять описание списков формальных параметров и типа результата функций (так как эти описания есть в разделе интерфейса).
Раздел реализации должен присутствовать в модуле обязательно, но он может быть пустым (не содержать никаких описаний после слова Implementation). Такое возможно, если модуль предназначен только для того, чтобы предоставлять описания констант, типов и переменных в готовом виде и не содержит собственных алгоритмов.
Раздел инициализации
Этот раздел является необязательным. Его можно включить в модуль, если нужно выполнить какие-то действия по инициализации переменных, открытии файлов, переключении в какие-то режимы внешних устройств и т.п.
Если этот раздел включен в модуль, он начинается словом Begin, которое записывается после последнего описания раздела реализации, и заканчивается словом End, которое одновременно заканчивает и модуль. Раздел инициализации похож на составной оператор – между словами Begin и End можно поместить произвольное количество исполняемых операторов.