Математика

Физика

Химия

Биология

Техника и    технологии

Использование абстракций и спецификаций при разработке программ-Лисков Б М.: Мир, 1989. — 424 с., ил.
Лисков Б., Гатэг Дж. №3
Использование абстракций и спецификаций при разработке программ: Пер. с англ. — М.: Мир, 1989. — 424 с., ил.
ил.
ISBN 5-03-000489-0
В книге американских специалистов излагаются основные способы создания спецификаций программ, повышающих эффективность разработки информационно-программного обеспечения. Значительное внимание уделено языку программирования CLU, позволяющему поддерживать различные типы абстракций, реализованных на языках ПЛ/1, Паскаль и Ада.
Для системных программистов, аспирантов в студентов старших курсов вузов.
Предисловие к русскому изданию
Книга посвящена одной из самых важных проблем в программировании — кпк создать «хорошую» программу. При этом, конечно, имеются в виду не программы, состоящие из нескольких сотен операторов, а большие программные комплексы. В создании, модификации и поддержании в рабочем состоянии программ обычно принимают участие несколько десятков, а то и сотен людей. При этом на практике используются два подхода — декомпозиции и абстракции. Декомпозиция — это разбиение программ на компоненты, объединение которых позволяет решить данную задачу, а абстракция помогает правильно выбрать нужные компоненты. В книге описываются пути использования этих подходов при проектировании больших программных комплексов.
Рассмотрение практических примеров проводится на языке программирования CLU, который для советского читателя мало знаком; компиляторы с этого языка реализованы только на ЭВМ фирмы Digital Equipment и Motorola. Дается методика использования языка Паскаль и ПЛ/1.
Предлагаемая вниманию читателей книга построена на базе курсов, которые авторы в течение десяти лет читали в Массачусетсом технологическом институте. Она, несомненно, будет полезна для системных программистов и разработчиков больших программных систем и может быть положена в основу курсов по программированию в вузах.
Перевод книги выполнен Д. Б. Шехватовым (гл. 1—3, 8—15 и приложения), С. А. Жигалкиным (гл. 4,5) и С. А. Усовым (гл. 6, 7).
С. Усов
Содержание
Предисловие редактора перевода ........... ....... 5
Предисловие............................ 6
1. Введение...................... 9
1.1. Декомпозиция и абстракция................. 10
1.2. Абстракция ........................ 12
Дополнительная литература................ 19
Упражнения........................ 19
2. Обзор языка программирования CLU......... 20
2.1. Структура программы................... 20
2.2. Целые числа, булевы переменные и массивы......... 22
2.3. Объекты.......................... 26
2.4. Объявления и присваивания ................ 28
2.5. Процедуры ........................ 31
2.6. Выражения......................... 34
2.7. Типы данных....................... 36
2.8. Ввод-вывод........................ 43
2.9. Объектно-ориентированные программы............ 45
Упражнения........................ 46
3. Процедурная абстракция .........., . . . 47
3.1. Преимущества абстракции ................. 47
3.2. Спецификации....................... 50
3.3. Спецификации процедурных абстракций........... 50
3.4. Реализация процедур.................... 52
3.5. Более обобщенные процедуры................ 55
3.6. Создание процедурных абстракций ............. 58
• 3.7. Заключение........................ 61
Дополнительная литература................ 62
Упражнения........................ 62
4. Абстракции данных................. 64
4.1. Спецификации для абстракций данных.......... . 66
4.2. Реализация абстракций данных............... 68
4.3. Использование абстракций данных............. 74
4.4. Реализация полиномов .................. 75
4.5. Пояснения для понимания реализаций........... 78
4.6. Параметризованные абстракции данных .......... 86
4.7. Списки .......................... 89
4.8. Упорядоченные списки.................. 93
4.9. Обсуждение........................ 96
422 Содержание •,'*/,
4.10. Заключение........................ 102
Дополнительная литература ................ 103
Упражнения........................ 103
5. Исключительные ситуации .............. Юб
5.1. Спецификации....................... 109
5.2. Механизм исключительных ситуаций в языке CLU...... 110
5.3. Использование исключительных ситуаций в программах ... 116
5.4. Некоторые аспекты проектирования программ........ 121
5.5. Заключение........................ 124
Дополнительная литература ................ 125
Упражнения........................ 125
6. Абстракция итерации................ 126 -
6.1. Спецификация ....................... 129
6.2. Итераторы языка CLU................... 130
6.3. Примеры ......................... 133
6.4. Вопросы проектирования.................. 135
6.5. Обзор главы........................ 136
Дополнительная литература ................ 137
Упражнения........................ 137
7. Использование языка Паскаль............ 139
7.1. Абстракции процедур и функций.............. 140
7.2. Абстракция данных..................... 143
7.3. Полиморфные абстракции............7..... 148
7.4. Генераторы ........................ 150
7.5. Полный пример ...................... 153
7.6. Обзор главы........................ 156
Дополнительная литература................ 157ч
Упражнения.....................' . . . 157/
8. Спецификации ................... 158
8.1. Спецификации и необходимые наборы спецификации..... 158
8.2. Некоторые критерии, применяемые к спецификациям .... 159
8.3. Почему именно спецификации?............... 165
8.4. Заключение........................ 167
Дополнительная литература................ 168
Упражнения........................ 168
9. Тестирование и отладка.........v...... 169
9.1. Тестирование....................... 170
9.2. Индивидуальное и интегральное тестирование........ '81
9.3. Средства тестирования................... '82
9.4. Отладка.......................... {|И
9.5. Защитное программирование................ loi "
9.6. Заключение ;....................... '93
Дополнительная литература ................ '**
Упражнения........................ 194
10. Написание формальных спецификаций' ....... '^
10.1. Введение в дополнительные спецификации......... '•••?
10.2. Спецификации интерфейсов процедурных абстракций . . . • *'т
10.3. Спецификации интерфейсов абстракций данных....... 1
Содержание 423
^ _ __ _____
10.4. Заключение........................ 223
Дополнительная литература................ 224
Упражнения........................ 224
11. Краткий обзор процесса верификации программ .... 225
11.1. Анализ программ, не содержащих ветвлений........ 226
11.2. Анализ программ с ветвлениями.............. 228
• 11.3. Разбор процедур ..................... 233
11.4. Анализ абстракций данных................. 245
11.5. Несколько замечаний по поводу формального анализа . . . 252
11.6. Заключение......................... 253
Дополнительная литература................ 254
Упражнения........................ 254
12. Предварительные замечания о процессе разработки программ ..................... 256
12.1. Жизненный цикл математического обеспечения....... 256
12.2. Анализ требований.................... 2Б8
12.3. Пример задачи...................... 262
12.4. Заключение........................ 268
Дополнительная литература................ 269
Упражнения........................ 269
13. Проектирование.................. 270
13.1. Обзор процесса проектирования.............. 270
13.2. Рабочий журнал проектировщика............. 272
13.3. Описание проблемы ................... 276
13.4. Начальная стадия проектирования............. 278
13.5. Обсуждение метода.................... 283
13.6. Последующие стадии проектирования.......-л , . . 284
13.7. Абстракция doc..................... 286
13.8. Абстракция строки.................... 292
13.9. Обзор и обсуждение.................» . 294
13.10. Заключение....................... 298
Дополнительная литература............... 299
Упражнения.....................-, . 299
14. Этап перехода от проектирования к реализации • . . . 300
14.1. Оценка проекта.....................• . 300
14.2. Последовательность разработки программы......... 309
14.3. Взаимосвязь абстракции и эффективности ......... 314
14.4. Заключение........................ 315
Дополнительная литература................ 316
Упражнения........................ 316
15. Использование других языков . . •........ 318
15.1. Подход с использованием стека .............. 318
15.2. Выбор подхода...................... 324
15.3. Заключение........,............... 327
Дополнительная литература................ 328
Упражнения....................... . 328
424 Содержание
Приложение А. Справочное руководство по языку CLU ... 329
АЛ. Синтаксис ........................ 329
А.2. Лексические соглашения ................. 331
А.З. Спецификации типов ................... 333
А.4. Области видимости, объявления и равенства........• 333
А.5. Присваивания и обращения................ 336
А.6. Выражения........................ 338
А.7. Операторы........................ 345
А.8. Модули ......................... 351
А.9. Встроенные типы..................... 358
А. 10. Ввод-вывод........................ 379
Приложение Б. Реализация форматировщика....... 393
Приложение В. Набор заданий по программированию . . . 400
Задача 1: использование абстракций данных........... 400
Задача 2: написание абстракций данных............ 402
Задача 3: модификация форматировщика текста......... 403
Задача 4: интерактивный корректировщик правописания..... 405
Задача 5: TriviCalc (месячный проект).............. 406
Предметный указатель....................... 418

Цена: 150руб.

Назад

Заказ

На главную страницу

Hosted by uCoz