Математика

Физика

Химия

Биология

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

Методы программирования том2-Б Мейер М.: Мир, 1982 368 с.
M4S Мейер Б., Бодуэн К.
Методы программирования: В 2-х томах. 1.2. Пер. с франц. Ю.А. Первина. Под ред. А. П. Ершова.-М.: Мир, 1982 368 с.
Второй том монографии французских ученых, посвященной основным понятиям информатики и трудным проблемам методологии программирования.
В гл. VI-VIII рассматриваются понятие рекурсии и эффективные алгоритмы. Последняя глава посвящена общим аспектам методологии программирования.
Книга рассчитана на профессиональных программистов, желающих овладеть современными методами программирования. Может служить учебным пособием по языкам программирования и алгоритмам.
ОГЛАВЛЕНИЕ
•а VI. Рекурсия *.....................
VI. 1. В защиту рекурсии.................. 6
VI.1.1. Введение.................... 6
VI.1.2. Рекурсивные определения и рекурсивные программы ... 6
VI.1.3. Свойства рекурсивных алгоритмов.......... 8
VI.2. Несколько рекурсивных программ............ 11
VI.2.1. Игра «Ханойская башня».............. 11,
VI.2.2. Численная задача................ 15
VI.2.3. Вычисление стоимости.............. 20
VI.2.4. Сортировка................... 22
VI.3. Практическая реализация рекурсии............ 24
VI.3.1. Рекурсия и языки программирования........ 24
VI.3.2. Задача..................... 25
VI.3.3. Практические правила реализации.......... 28
VI.3.3.1. Предварительная обработка......... 29
VI.3.3.2. Реализация рекурсивных вызовов....... 29
VI.3.3.3. -Перевод возвратов............. 31
и VI.3.3.4. Случай параметров-результатов........ 32
VI.3.3.5. Дополнение: косвенная рекурсия-исключение параметров .........(........ 34
VI.3.4. Представление стеков.....";......... 34
VI.3.4.1. Частный случай.............. 34
i VL3.4.2. Внутренние стеки подпрограммы....... 37
VI.3.4.3. Глобальный стек............. 38
VI.3.4.4. Цепное представление стека......... 41
VI.3.5. Упрощения. Исключение рекурсии.......... 42
VI.3.5.1. Попытка «структурирования»......... 43
VI.3.5.2. Построение обратных функций........ 49
V1.3.5.3. Исключение рекурсии............ 52
VI.4. Восходящее рекурсивное вычисление........... . 57
Последнее решение Ханойской башни........... 61
VI.5. Применение: алгоритмы последовательных испытаний..... 63
VI.5.1. Введение и определения.............. 63
VI.5.2. Алгоритм последовательных испытаний и искусственный
интеллект................... 65
VI.5.2.1. ДЕНДРАЛ, УРЗ.............. 66
V1.5.2.2. Деревья и/илн.............. 67
VI.5.2.3. SAINT................. 70
VI.5.3. Рекурсивная форма^ алгоритмов последовательных испытаний ....... ...... ........ 72
VI.5.4. Обработка простого примера............ 73
VI.5.5. Играющая программа............... 78
....... 83
Глава VII. Алгоритмы..................... g,
VII. 1. Общие сведения. Методы................ д,
VII.1.1. Сложность алгоритмов............. 9(
VII.1.2. Методы поиска эффективных алгоритмов...... д.
VII.1.2.1. «Разделяй и властвуй».......... д.
VII. 1.2.2. Уравновешивание............ д.
VII. 1.2.3. Компиляция и интерпретация....... jg(
VII. 1.2.4. Соотношение пространство-время...... д-
VII.2. Управление таблицами
9!
VII.2.1. Определение и общие сведения .......... 9)
VII.2.2. Последовательная неупорядоченная таблица ..... '10;
VII.2.2.1. Представления ............. До]
VII.2.2.2. Алгоритмы поиска ............ до-
VII.2.2.3. Алгоритм включения. Обсуждение ...... до;
VII.2.3. Упорядоченная последовательная таблица; дихотомиче-
ский поиск ................. . Доц
VII.2.3.1. Последовательный поиск в упорядоченной таб-
лице ............ • ..... 1(Х
VII.2.3.2. Последовательное включение ....... Ш
VII.2.3.3. Дихотомический поиск ...... .... ДО?
VII.2.3.4. Практическая сложность дихотомического поиска 108
VII.2.3.5. Обсуждение и заключение . . . ' ...... llf
VII.2.4. Двоичное дерево поиска . ............ Ш
VII.2.4.1. Метод ................. Ш
VII.2.4.2. Равновесные двоичные деревья ....... 12С
VII.2.5. Ассоциативная адресация ............. 128
VII.2.5.1. Определения и общие сведения ...... -128
VII.2.5.2. Выбор адресной функции ......... 131
VII.2.5.3. Внешнее разрешение коллизий ....... 132
VII.2.5.4. Разрешение коллизий в самом массиве ... 134 VII.2.5.5. Использование упорядоченности ключей в преды-
дущем методе . . ........... 138
VII.2.5.6. Вариации и заключение .......... 139
VII.3. Сортировка ........ ........... , . 140
VII.3.1. Задача .................... 140
VII.3.2. Определения ................. . 141
VII.3.3. Замечания о сложности алгоритмов сортировки . . . 143
VII.3.4. Главные базовые идеи .............. 144
VII.3.4.1. Сортировка включением .......... 144
VII.3.4.2. Сортировка слиянием .......... 145
VII.3.4.3. Сортировка обменами .......... 145
VII.3.4.4. Сортировка извлечением ......... 146
VII.3.4.5. Сортировка распределением ........ 146
VII.3.5. Сортировка включением. Метод Шелла ...... • 146
VII.3.5.1. Сортировка простым включением ...... 146
VII.3.5.2. Метод Шелла .... ....... ... 148
VII.3.6. Сортировка обменами; «Быстрая Сортировка» .... 152
VII.3.6.1. Пузырьковая Сортировка ......... 152
VII.3.6.2. Принцип Быстрой Сортировки ....... 153
VII.3.6.3. Построение эффективной Быстрой Сортировки 155
VII.3.6.4. Хорошая программа Деление ....... 16^)
VII.3.6.5. Исключение рекурсии и эффективная реализация 168
VII.3.7. Сортировка Извлечением: Древесная Сортировка ... ю
VII.3.8. Понятия сортировки распределением........ 183
VII.3.9. Практическое сравнение различных методов..... 184
II.4. Обработка текстов: алгоритм «сопоставления с образцом» ... 186
VII.4.1. Задача и тривиальный алгоритм.......... 186
VII.4.2. Алгоритм сопоставления образцов......... 190
VII.4.3. Алгоритм построения.............. 192
VII.4.4. Временная сложность.............. 197
VII.4.5. Пространственная сложность. Структуры данных . . . 197
библиография....................... 198
Упражнения....................... 199
Глава VIII. На путях к методологии............... 202
VIII.1. Сомнения...................... 203
VHI.2. Причины и цели................... 204
VIII.3. Уровни программирования............... 210
VIII.3.1. Единство программирования........... 211
VIII.3.2. Уровень абстракции. Виртуальные машины..... 212
VIII.3.2.1. Введение и определения......... 212
- —--------—~..ж..«_т ОППТНПОВКИ ..... 213
VIII.3.2.2. Пример: программы сортировки
VIII.3.2.3. Второй пример: транслятор.......215
VHI.3.2.4. Третий пример: бухгалтерия.......
„—„„ ... 217
------„ 216
VHI.3.3. Нисходящая и восходящая концепции....... 217
VIII.3.3.1. Определения.............. 217
VIII.3.3.2. Сложности, возникающие при использовании
нисходящего метода.......... 219
VIII.3.3.3. Проблемы, возникающие при использовании
восходящего метода.......... 222
VIII.3.3.4. Заключение.............. 223
VIII.3.4. Понятие модуля ................ 224
VHI.3.5. Статическое программирование. Язык Z . . . . . . 230
VIII.3.5.1. Определения: язык Z0......... 230
VHI.3.5.2. Уровень Z0.............. 231
VIII.3.5.3. Уровень Zj и его преобразования .... 232
VIII.3.5.4. Пример............... 233
VIII.3.5.5. Обсуждение............. 243
VIII.3.6. Программа и ее преобразования......... 248
VIII.4. Качества программы и возможности программиста..... 249
VIII.4.1. Должна ли программа быть хорошей?...... 249
VIII.4.2. Правильность-Доказательства-Тесты....... 249
Vni.4.2.1. Правильность программы........ 249
VTII.4.2.2. Доказательства: их роль и границы .... 251
VIII.4.2.3, Сравнение с традиционными методами . . . 253
VIII.4.2.4. Оператор ASSERT в АЛГОЛе W..... 254
VIII.4.2.5. Надо ли тестировать программы? .... 256 VIII.4.2.6. Средства диагностики при выполнении . . . 258 VIII.4.3. Читаемость, выражение, стиль, комментарии, документация .......'.............. 261
VIII.4.3.1. Читаемость программ.......... 261
VHI.4.3.2. Стиль и выражение.......... 262
VIII.4.3.3. Комментарии .............267
VIII.4.3.4. Документация.............270
VIII.4.4. Надежность; защищающее прюграммирование .... 272
VIII4.4.1. Надежность............. 272
VIII.4.4.2. Защищающее программирование..... 272
VIII.4.5. Гибкость. Адаптируемость. Универсальность..... 276
VIII.4.6. Переносимость".................277]'
VIII.4.7. Эффективность: оптимизация........Л . . 2-78
VIII.5. Программист и другие................ 283
VIII.5.1. Бригада программистов............. 284
VIII.5.1.1. Задачи................ 284<
VIII.5.1.2. Бригада главного программиста..... 286|
VIII.5.2. Программист. Заказчик. Пользователь........ 288 i
Эскиз библиографии.................... 292i
Ответы к упражнениям и задачам.............. 294!
Глава I........................ 294
Глава II...................... 295
Глава III...................... 296
Глава IV...................... 305
Глава V...........'........... 307
Глава VI...................... 309
Глава VII....................;.. 322
Приложения....................... 330
Приложение А. Алгоритмическая нотация......... 330
Приложение Б. Англо-франко-русский словарь основных терминов программирования.......... 336
Приложение В. Встроенные (стандартные) функции в ФОРТРАНе 341 Приложение Т. Соглашения АЛГОЛа W о типе результата арифметических операций........... 344
Встроенные процедуры и переменные в АЛГОЛе
W.................. 345
Приложение Д. Встроенные функции в ПЛ/1 (частичный список) 349
Библиография.................... 353

Цена: 150руб.

Назад

Заказ

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

Hosted by uCoz