498
ГЛАВА 9. СТРУКТУРЫ ДАННЫХ
В методологическом плане требования концепции абстрактных типов дан-
ных положительно повлияли на систему типов данных в языках программи-
рования и в программах.К примеру, современные системы типов языков про-
граммирования часто стремятся строить уже не в привязке к базовым сред-
ствам конкретных вычислителей, а на основе математически (или системно
и логически) обоснованной системы понятий, которая уже затем трансфор-
мируется в понятия языка конкретного вычислителя. Далеко не всегда такая
трансформация проходит безболезненно, но все-таки она дает возможность
добиться резкого повышения качества программ, если рассматривать их как
элементы всей системы человеческой деятельности.
Абстрактную точку зрения на понятие типа данных следует рассматри-
вать как средство декомпозиции задач. Но это средство высокого уровня. Да-
же описать поведение объекта полностью независимо от представления не-
льзя без высокой логико-алгебраической культуры.Только тогда можно полу-
чить абстрактное представление, такое, чтобы любая его реализация, удовле-
творяющая спецификации, гарантировала бы корректность использования.
Кроме того, если говорить о спецификации, которая описывает не только
математические свойства, но и требования к эффективности, то нынешняя
теория еще только начинает заниматься подобными вопросами, и поэтому
связь ресурсных требований с абстрактным представлением остается декла-
ративной, описанной так же нестрого, как семантика в традиционных описа-
ниях языков программирования. Выбор конкретного представления, которое
должно удовлетворять ресурсным требованиям, вступает в противоречие с
высокоуровневыми операциями, никак не связанными при нынешнем их по-
нимании ни с памятью, отводимой под объекты, ни с временем исполнения.
Эта сторона спецификаций остается тем, что очень трудно проверить.
В связи со всем этим стоит заметить, что и объектный подход совсем не
преуспел в решении задачи отдельного от реализации описания типа и в со-
гласовании абстрактных и ресурсных требований.
Если исходить из потребностей абстрагирования, то заманчиво поставить
вопрос о существовании универсального типа типов, из которого все нужные
типы строились бы путем вычисления операций этого типа с типовыми зна-
чениями. Однако построения такого рода — прямой путь к логическим пара-
доксам теории множеств или комбинаторной логики (к примеру, к парадоксу
лжеца и парадоксу Рассела, см. [63]).
В последующих разделах обсуждаются средства построения систем ти-
пов данных, предлагаемые различными языками, с учетом общих положе-
ний, изложенных выше.