- Артикул:00-01100518
- Автор: Керниган, Брайан У., Пайк, Роб.
- ISBN: 5-8459-0679-2
- Тираж: 3000 экз.
- Обложка: Мягкая обложка
- Издательство: ВИЛЬЯМС (все книги издательства)
- Город: Москва-Санкт-Петербург-Киев
- Страниц: 288
- Формат: 70х100/16
- Год: 2004
- Вес: 721 г
- Серия: Программирование для профессионалов (все книги серии)
Вашему вниманию предлагается перевод на русский язык исправленного и дополненного издания (уже восьмого по счету) популярной книги, вышедшего из печати в январе 2004 года. Верификацию кода в русском издании выполнили сами авторы книги - Брайан Керниган и Роб Пайк, что лишний раз свидетельствует об их огромной ответственности перед читателями.
В книге рассматриваются принципы практического профессионального программирования, которые, выходя за рамки простого написания кода, включают в себя проектирование, правильный выбор алгоритмов и структур данных, отладку и тестирование, оптимизацию быстродействия и переносимости, автоматизацию рабочего процесса. Изложение проиллюстрировано примерами из сложных, практически важных систем.
Книга предназначена для повышения квалификации программистов. Может быть полезна студентам и преподавателей компьютерных специальностей.
Содержание
Предисловие
Глава 1. Стиль программирования
1.1. Имена
1.2. Выражения и операторы
1.3. Единообразие стиля и устойчивые конструкции
1.4. Макрофункции
1.5. Явные числовые константы
1.6. Комментарии
1.7. Зачем утруждать себя
Дополнительная литература
Глава 2. Алгоритмы и структуры данных
2.1. Поиск
2.2. Сортировка
2.3. Библиотечные средства
2.4. Быстрая сортировка в Java
2.5. О-оценка
2.6. Расширяемые массивы
2.7. Списки
2.8. Деревья
2.9. Хэш-таблицы
2.10. Резюме
Дополнительная литература
Глава 3. Проектирование и реализация
3.1. Цепь Маркова
3.2. Выбор структур данных
3.3. Построение структуры данных на С
3.4. Генерирование выходных данных
3.5. Java
3.6. C++
3.7. Awk и Perl
3.8. Вопросы быстродействия
3.9. Извлекаем уроки
Дополнительная литература
Глава 4. Интерфейсы
4.1. Данные, разделенные запятыми
4.2. Прототип библиотеки
4.3. Библиотека для общего пользования
4.4. Реализация на языке C++
4.5. Принципы интерфейса
4.6. Управление ресурсами
4.7. Обработка ошибок
4.8. Пользовательские интерфейсы
Дополнительная литература
Глава 5. Отладка
5.1. Отладчики
5.2. Простые ошибки с очевидными симптомами
5.3. Сложные ошибки с трудными симптомами
5.4. Тяжелые случаи
5.5. Невоспроизводимые ошибки
5.6. Вспомогательные средства
5.7. Ошибки, сделанные другими
5.8. Резюме
Дополнительная литература
Глава 6. Тестирование
6.1. Тестирование по мере написания кода
6.2. Систематическое тестирование
6.3. Автоматизация тестирования
6.4. Тестирование компонентов в программных оболочках
6.5. Стрессовое тестирование
6.6. Полезные советы
6.7. Кто занимается тестированием
6.8. Тестирование марковской программы
6.9. Резюме
Дополнительная литература
Глава 7. Быстродействие
7.1. Узкие места
7.2. Измерение времени и профилирование
7.3. Стратегия ускорения
7.4. Настройка кода
7.5. Оптимизация использования памяти
7.6. Некоторые оценки
7.7. Резюме
Дополнительная литература
Глава 8. Переносимость
8.1. Язык
8.2. Заголовочные файлы и библиотеки
8.3. Организация программы
8.4. Изоляция
8.5. Обмен данными
8.6. Порядок следования байтов
8.7. Переносимость и модернизация
8.8. Интернационализация
8.9. Резюме
Дополнительная литература
Глава 9. Системы обозначений
9.1. Форматирование данных
9.2. Регулярные выражения
9.3. Программирование в командных оболочках
9.4. Интерпретаторы, компиляторы и виртуальные машины
9.5. Программы, пишущие программы
9.6. Генерирование кода с помощью макросов
9.7. Компиляция в реальном времени
Дополнительная литература
Эпилог
Предметный указатель