АНАЛИЗ
прогроммного КОдА
CODE Reading
The Open Source Perspective
Diomidis Spinellis
...
... ... ADDISON-WESLEY
Boston • San Francisco • New York • Toronto • Montreal
London • Munich • . Paris • Madrid • Capetown • Sydney
Tokyo • Singapore • Mexico City
АНАЛИЗ
прогроммного К ОДА
на примере проектов Open Source
Диомидис Спинеллис
Москва· Санкт-Петербург· Киев
2004
ББК 32. 973. 26-018. 2. 75
С72
УДК 681. 3. 07
Издательский дом "Вильяме"
Зав. редакцией С. Н. williamspublishing. com
Спинелли с , Диомидис. С72 Анализ проrраммного кода на примере проектов Open Source. : Пер. с анrл. -
М. : Издательский дом "Вильяме", 2004. - 528 с. : ил. - Парал. тит. анrл.
ISBN 5-8459-0604-0 (рус. )
Книга посвящена важному аспекту проrраммирования, недостаточно освещенному в ли
тературе, - чтению и анализу проrраммноrо кода на языках высокого уровня с целью дора
ботки, извлечения готовых технических решений или изучения новых методов. Даются цен
ные рекомендации по улучшению стиля проrраммирования. Изложение проиллюстрировано
большим количеством примеров, взятых из больших программных проектов с открытым ко
дом, находящихся на прилагаемом компакт-диске. Книга предназначена для повышения квалификации проrраммистов. Может быть полезна
студентам и преподавателям соответствующих специальностей, а также начинающим про
rраммистам. ББК 32. 973. 26-018. 2. 75
Все названИJI проrра'dМНых про. цукrов ЯВЛJIЮТСЯ зарегиСiрированными торговыми марками соотвеrствующих фирм. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было
форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирова
ние и запись на магнитный носитель, если на это нет письменного разрещения издательства Addison-Wesley
Publishing Соmрапу, lnc. Authorized translation from the English language edition puЬlished Ьу Addison-Wesley PuЬlishing Company,
lпс. , Copyright © 2003 Ьу Pearson Education, lпс. All rights rese!Ved. No part of this Ьооk may Ье reproduced, stored in retrieval system or traпsmitted in any form
or Ьу any means, e\ectronic, mechanical, photocopying, recording, or otherwise without either the prior written
permission о the Publisher. Russian language edition puЬlished Ьу Williams Publishing House according to the Agreement with R&l
Enterprises lnternational, Copyright © 2004
ISBN 5-8459-0604-0 (рус. ) ©Издательский дом "Вильяме", 2004
ISBN 0-20 1 -79940-5 (англ. ) © Ьу Pearson Education, Inc. , 2003
Огл а вл е н и е
Предисловие 13
1 Общие сведения 21
2 Основные элементы программ 39
3 Сложные типы данных в языке С 81
4 Структуры данных в С 113
5 Сложные средства управления программами 159
6 Анализ больших проектов 195
7 Стандарты стиля программирования 247
8 Документация 267
9 Архитектура 295
10 Вспомогательные программвые средства 373
11 Практический пример 417
А Обзор прилагаемоrо кода 435
Б Благодарности авторам кода 439
в Указатель файлов исходного кода 443
г Лицензионные соглашения 455
д Свод рекомендаций по анализу кода 469
Список литературы 491
Источники эпиграфов 505
Предметный указатель 506
Соде ржа ние
Предисловие 13
1 Общие с ведения 21
1. 1.