Page 82 - ЭВМ
P. 82

Основная задача дисциплинированного проектирования – обес-
               печение  линейной  зависимости  объема  работ  от  количества  проект-
               ных решений за счет введения структурирования проектных решений
               и сближения моментов совершения и обнаружения ошибок.
                      Введенное  Дж.  Виртом  понятие  абстрактных  типов  данных

               (АТД)  явилось  наиболее  важным  шагом  к  созданию  современных
               языков  и  технологий  программирования.  Предложения  Дж.  Вирта
               были настолько революционными, что привели к появлению целого
               ряда новых понятий: виртуальная машина, виртуальная память и т. п.
               Рассмотрим подробнее понятие АТД.
                      Структурное  кодирование,  аппарат  подпрограмм  и  модульное
               программирование обеспечивают упорядочение в программах связей
               по  передачам  управления  и  накопление  опыта  в  форме  алгоритмов
               вычислений. Поскольку основная сложность программ сосредоточена
               в структурах данных и связях по данным, необходимо и для данных
               иметь аналогичные средства (модульность здесь полезна, но не доста-

               точна,  так  как  ограничивается  структуризацией  макроуровня  и  не
               учитывает  специфики  проектирования,  обработки  и  структуризации
               данных) [11].
                      Наиболее  перспективными  в  этом  отношении  представляются
               идеи  абстрактных  типов  данных,  основные  варианты  которых  были
               предложены во второй половине 1970-х гг.
                      Концепцию АТД удобно пояснить, рассмотрев более ранние оп-

               ределения типа данных:
                      –  тип определяет класс значений, которые могут принимать пе-
               ременная или выражение;
                      –  каждое значение принадлежит одному и только одному типу;
                      –  тип  значения  константы,  переменной  или  выражения  можно
               вывести  либо  из  контекста,  либо  из  самого  операнда,  не  обращаясь
               к значениям, вычисляемым во время работы программы;
                      –  каждой  операции  соответствует  некоторый  фиксированный
               тип ее операндов и некоторый фиксированный тип результата;
                      –  для  каждого  типа  свойства  значений  и  элементарных  опера-
               ций над значениями задаются с помощью аксиом;

                      –  при работе с языком высокого уровня знание типа позволяет
               обнаруживать в программе бессмысленные конструкции и решать во-
               прос о методе представления данных и преобразования их в вычисли-
               тельной машине;
                      –  интересующие нас типы – это типы, хорошо знакомые мате-
               матикам: прямые произведения, размеченные объединения, множест-
               ва, функции, последовательности и рекурсивные структуры.



                                                           80
   77   78   79   80   81   82   83   84   85   86   87