Иллюстрированный самоучитель по практике программирования

Введение 2
Стиль 4
Принципы хорошего стиля программирования 5
Имена 6
Выражения 8
Стилевое единство и идиомы 12
Макрофункции 18
Загадочные числа 19
Комментарии 22
Стоит ли так беспокоиться о стиле? Дополнительная литература. 26
Алгоритмы и структуры данных 27
Одна из основ программирования 28
Поиск 29
Сортировка 31
Библиотеки 33
Быстрая сортировка на языке Java 36
"О большое" 38
Динамически расширяемые массивы 39
Списки 41
Деревья 46
Хэш-таблицы 50
Заключение. Дополнительная литература. 53
Проектирование и реализация 54
Центральный момент в создании программы 55
Алгоритм цепей Маркова 56
Варианты структуры данных 57
Создание структуры данных в языке С 58
Генерация вывода 61
Объектно-ориентированный язык Java 63
C++ 66
Языки скриптов AWK и PERL 68
Производительность 70
Уроки 71
Дополнительная литература 72
Интерфейсы 73
Проектирование интерфейсов 74
Значения, разделенные запятой 75
Прототип библиотеки 76
Библиотека для распространения 79
Реализация на C++ 86
Принципы интерфейса 90
Управление ресурсами 92
Abort, Retry, Fail? 94
Пользовательские интерфейсы 98
Дополнительная литература 99
Отладка 100
Баг 101
Отладчики 102
Хорошие подсказки, простые ошибки 103
Трудные ошибки, нет зацепок 106
Последняя надежда 109
Невоспроизводимые ошибки 111
Средства отладки 112
Чужие ошибки 114
Заключение. Дополнительная литература. 115
Тестирование 116
Проблемы вашего кода 117
Тестируйте при написании кода 118
Систематическое тестирование 123
Автоматизация тестирования 126
Тестовые оснастки 128
Стрессовое тестирование 131
Полезные советы 133
Кто осуществляет тестирование? 134
Тестирование программы markov 135
Заключение. Дополнительная литература. 136
Производительность 137
Увеличение производительности 138
Узкое место 139
Замеры времени и профилирование 143
Стратегии ускорения 147
Настройка кода 149
Эффективное использование памяти 152
Предварительная оценка 154
Заключение. Дополнительная литература. 156
Переносимость 157
Степень переносимости 158
Язык 159
Заголовочные файлы и библиотеки 163
Организация программы 164
Изоляция 167
Обмен данными 168
Порядок байтов 169
Переносимость и внесение усовершенствований 172
Интернационализация 174
Заключение. Дополнительная литература. 175
Нотация 176
Способ записи 177
Форматирование данных 178
Регулярные выражения 183
Программируемые инструменты 188
Интерпретаторы, компиляторы и виртуальные машины 190
Программы, которые пишут программы 195
Использование макросов для генерации кода 198
Компиляция "на лету" 199
Дополнительная литература 202
Приложение. Свод правил. 203
Эпилог 205