Page 82 - ЭВМ
P. 82
Основная задача дисциплинированного проектирования – обес-
печение линейной зависимости объема работ от количества проект-
ных решений за счет введения структурирования проектных решений
и сближения моментов совершения и обнаружения ошибок.
Введенное Дж. Виртом понятие абстрактных типов данных
(АТД) явилось наиболее важным шагом к созданию современных
языков и технологий программирования. Предложения Дж. Вирта
были настолько революционными, что привели к появлению целого
ряда новых понятий: виртуальная машина, виртуальная память и т. п.
Рассмотрим подробнее понятие АТД.
Структурное кодирование, аппарат подпрограмм и модульное
программирование обеспечивают упорядочение в программах связей
по передачам управления и накопление опыта в форме алгоритмов
вычислений. Поскольку основная сложность программ сосредоточена
в структурах данных и связях по данным, необходимо и для данных
иметь аналогичные средства (модульность здесь полезна, но не доста-
точна, так как ограничивается структуризацией макроуровня и не
учитывает специфики проектирования, обработки и структуризации
данных) [11].
Наиболее перспективными в этом отношении представляются
идеи абстрактных типов данных, основные варианты которых были
предложены во второй половине 1970-х гг.
Концепцию АТД удобно пояснить, рассмотрев более ранние оп-
ределения типа данных:
– тип определяет класс значений, которые могут принимать пе-
ременная или выражение;
– каждое значение принадлежит одному и только одному типу;
– тип значения константы, переменной или выражения можно
вывести либо из контекста, либо из самого операнда, не обращаясь
к значениям, вычисляемым во время работы программы;
– каждой операции соответствует некоторый фиксированный
тип ее операндов и некоторый фиксированный тип результата;
– для каждого типа свойства значений и элементарных опера-
ций над значениями задаются с помощью аксиом;
– при работе с языком высокого уровня знание типа позволяет
обнаруживать в программе бессмысленные конструкции и решать во-
прос о методе представления данных и преобразования их в вычисли-
тельной машине;
– интересующие нас типы – это типы, хорошо знакомые мате-
матикам: прямые произведения, размеченные объединения, множест-
ва, функции, последовательности и рекурсивные структуры.
80