Модульное программирование в Turbo Pascal
Модульное программирование явилось дальнейшим развитием концепции, положенной в основу Паскаля, согласно которой разработка программы состоит в разработке алгоритма и структуры данных. Оно также является развитием концепции библиотек подпрограмм.
Традиционные библиотеки подпрограмм предоставлялись пользователю как наборы разрозненных процедур и функций. Однократно спроектированные и отлаженные подпрограммы можно было многократно использовать в готовом виде во многих программах.
В модулях, кроме процедур и функций, описываются структуры данных – типы, константы и переменные, спроектированные для определенных целей. Эти структуры данных также можно многократно использовать, не повторяя каждый раз их описание.
В модулях также получила развитие идея надежного программирования, состоящая в максимальной обособленности и независимой работе отдельных частей программы, так как модуль позволяет объявлять часть объектов в качестве интерфейсных, то есть, доступных программисту, использующему модуль. Другая часть объектов используется модулем для собственных нужд и не доступна программисту, использующему модуль. Это позволяет изолировать компоненты модуля, некорректное использование которых может приводить к серьезным и трудно обнаруживаемым ошибкам. Даже если программу и часть ее модулей разрабатывает один программист, такой подход позволяет лучше локализовать влияние ошибок и, соответственно, легче находить и устранять ошибки.
|
|
В модуль можно также включить необязательный раздел инициализации, который будет выполнен до начала работы основной программы. В таком разделе можно описать подготовительные действия для работы модуля – открытие файлов, считывание данных из файлов, проверка состава и параметров оборудования, установка начальных значений переменных и т.п.
Одним из первых языков, реализующих концепцию модульности, был язык Modula, предложенный автором Паскаля Никласом Виртом. Дальнейшее развитие она получила в языке Modula-2 того же автора и в языке Ada, разработанном по заказу американских военных ведомств. Также она была реализована в Turbo Pascal, где, в дополнение к своим основным задачам, модульная структура программы позволила оптимизировать использование сегментной адресации памяти, присущей IBM-совместимым персональным компьютерам на основе процессоров x86 и Pentium.