МАТЕМАТИЧЕСКОЕ
ОБЕСПЕЧЕНИЕ
ЭВМ
ДАННЫЕ
В ЯЗЫКАХ
ПРОГРАММИРОВАНИЯ
АБСТРАКЦИЯ И ТИПОЛОГИЯ
Сборник статей
Перевод с английского
под редакцией
В. Н. Агафонова
Москва 1982
«МИР»
УДК 681. 3
Сборник посвящен новому направлению в системном
и теоретическом программировании — разработке языковых
средств абстракции данных, позволяющих хорошо
структурировать программы, и исследованию понятия типа данных в
программировании. В числе авторов — известные специалисты,
основатели этого направления — Ч. Хоар, Д. Скотт
(Великобритания), Д. Парнас (США) и др. Для программистов и математиков, интересующихся
методологией, языковыми и математическими основами
программирования. Редакция литературы по математическим наукам
ДАННЫЕ В ЯЗЫКАХ ПРОГРАММИРОВАНИЯ
Научн. редактор Л. Н. Бабынина. Мл. научн. ред. Э. Г. Иванова. Художник В. М. Новоселова. Художественный редактор В. И. Шаповалов. Технический редактор Е. В. Ящук. И Б № 2709
Сдано в набор 25. 06. 81. Подписано к печати 30. 10. 81. Формат 60X907i6. Бумага типографская № 1. Гарнитура обыкновенная. Печать высокая.
Объем 10,25 бум. л. Усл. печ. л. 20,50, Усл. кр. -отт. 20,89. Уч. -изд. л. 20. Изд. № 1/1396. Тираж 8000 экз. Зак. 01492. Цена 2 р. 10 к. ИЗДАТЕЛЬСТВО «МИР»
Москва, 1-й Рижский пер. , 2. Ордена Трудового Красного Знамени
Московская типография № 7 «Искра революции» Союзполиграфпрома
Государственного Комитета СССР по делам издательств,
полиграфии и книжной торговли. Москва 103001, Трехпрудный пер. , 9.
2405000000
20205-032
041(01) -82
32—82, ч. 1 © «Мир», 1982
ПРЕДИСЛОВИЕ
Этот сборник статей посвящен изучению и применению двух
взаимосвязанных понятий — абстракции данных и типа данных. В математике теория типов обсуждается, начиная с классических
работ Рассела, посвященных основаниям математики. В
программировании типы появились в первых же языках «высокого уровня»
как средство организации данных и повышения эффективности
программ. С увеличением сложности программ возрастает значение
механизма типов, и в частности контроля типов, как средства
предотвращения или выявления ошибок в программах. В последние
годы понятие типа становится все более важным и сложным в
связи с появлением языков, в которых программисту предоставляется
возможность определять новые, нужные ему типы данных. Введение типов объектов, соответствующих решаемой задаче, позволяет
абстрагироваться от второстепенных деталей и решать задачу
на том уровне абстракции, который соответствует природе этой
задачи, а рассмотрение деталей отложить до перехода к другому,
более низкому уровню абстракции. Это один из аспектов связи
между типами и абстракцией. Однако понятию абстракции данных
в программировании присущи также аспекты, связанные с
модульностью, скрытием (инкапсуляцией) представления данных и
возможностью менять это представление, не изменяя «абстрактной»
программы. Содержание понятий типа, абстракции и, в частности, так
называемого абстрактного типа данных оказалось весьма
многообразным и стало объектом интенсивного изучения и обсуждения
как в теоретическом, так и в практическом плане.