Самитов р.К. Избранные средства object pascal 2
языки программирования развиваются;
причины на то – разнообразны и нередко противоречивы, поэтому развитие происходит в разных направлениях (*);
Вирт Н. – после языка Pascal разработал несколько языков программирования, … Modula…
Object Pascal 2 – разработка Borland Int. Inc. с учетом, как исследований самого Вирта, так и других рекомендаций современной методологии программирования.
МОДУЛИ
Изучая понятие процедура-функция, мы сначала на примере рассмотрели «зачем они нужны» и «как этим пользоваться», а потом рассмотрели соответствующий синтаксис и семантику, и подвели итоги. В этот раз мы поступим несколько иначе – сначала рассмотрим лишь общие соображения по поводу вышеотмеченных вопросов, потом синтаксис и семантику понятий, а, подводя итоги, попробуем разобраться с этими вопросами поточнее.
Традиционная методология программирования выделяет (и разделяет) два основных понятия: данные и действия (операторы, операции,…). Однако в курсе неоднократно подчеркивалось:
данные и действия «ходят парочкой» – одно без другого не возможно;
почти во всех рассуждениях хорошо просматривается отношение двойственности между этими понятиями – «что можно делать с данными, можно делать с действиями, и наоборот»;
видимо наиболее прозрачным проявлением двойственности являются способы группировки данных и действий:
ДАННЫЕ ДЕЙСТВИЯ
record begin … ; … end
array, file for, while, repeat
union (в Pascal имеется if, case
ограниченный вариант
– записи с вариантами)
рекурсивные структуры данных рекурсивные процедуры-функции
Традиционное понятие тип данных акцентирует внимание на конструировании более сложных структур данных из менее сложных. В 70-е годы в методологии программирования сложилось более общее понятие – абстрактный тип данных (АТД), которое объединяет данные и операции (с ними) в действительно полноценное единое понятие, которое хорошо соответствует математическим понятиям – (многоосновная, типизированная…) алгебраическая система, алгебраическая модель.
Абстрактный тип данных – можно трактовать как способ группировки данных и операций (над ними) по критерию «замкнутости для некоторого класса задач». Образно говоря, группировка данных и группировка действий дают две ортогональные классификации инструментов программирования, а абстрактный тип позволяет сгруппировать инструменты под класс задач.
Группировка
действий
д
а
н
н
ы
х
Группировка
Хотелось бы сказать, модули (пакеты, кластеры,…) – аппарат языков программирования, предназначенный для определения и использования абстрактных типов данных (**). Однако реальность несколько иная, поэтому ограничимся менее категоричным утверждением. Если процедуры и функции, видимо достаточно адекватно соответствует понятию подзадача, то модули – видимо более соответствуют понятию набор инструментов для решения специализированного класса задач. Именно поэтому модули быстро вошли в практику программирования, как средство оформления разнообразных инструментальных библиотек – для работы с графикой, с базами данных, с объектами организации диалога (меню, окна,…) и т.д.
Описание модуля.
UNIT ИмяМодуля ;