Бьерн Страуструп.
Язык программирования С++
15
ассемблере, С
или других современных языках высокого уровня. Основное его предназначение -
упростить и сделать более приятным процесс программирования для отдельного программиста. До
недавнего времени не было плана разработки С++ на бумаге. Проектирование, реализация и
документирование шли параллельно. Никогда не существовало "проекта С++" или "Комитета по
разработке С++". Поэтому язык развивался и продолжает развиваться так, чтобы преодолеть все
проблемы, с которыми столкнулись пользователи. Толчками к развитию служат также и обсуждения
автором всех проблем с его друзьями и коллегами.
В
связи с лавинообразным процессом увеличения числа пользователей С++, пришлось сделать
следующие изменения. Примерно в 1987 г. стало очевидно, что работа по стандартизации С++
неизбежна и что следует незамедлительно приступить к созданию основы для нее [22]. В результате
были предприняты целенаправленные действия, чтобы установить контакт между разработчиками С++
и большинством пользователей. Применялась обычная и электронная почта, а также было
непосредственное общение на конференциях по С++ и других встречах.
Фирма AT&T Bell Laboratories внесла основной вклад в эту работу, предоставив автору право изучать
версии справочного руководства по языку вместе с упоминавшимися разработчиками и
пользователями. Не следует недооценивать этот вклад, т.к. многие из них работают в компаниях,
которые можно считать конкурентами фирмы AT&T. Менее просвещенная компания могла бы просто
ничего не делать, и в результате появилось бы несколько несогласованных версий языка. Около ста
представителей из порядка 20 организаций изучали и комментировали то, что стало современной
версией справочного руководства и исходными материалами для ANSI по стандартизации С++. Их
имена можно найти в "Аннотированном справочном руководстве по языку С++" [4]. Справочное
руководство полностью вошло в настоящую книгу. Наконец, по инициативе фирмы Hewlett-Packard в
декабре 1989 г. в составе ANSI был образован комитет X3J16. Ожидается, что работы по
стандартизации С++ в ANSI (американский стандарт) станут составной частью работ по стандартизации
силами ISO (Международной организации по стандартизации).
С++ развивался одновременно с
развитием некоторых фундаментальных классов, представленных в
данной книге. Например, автор разрабатывал классы complex, vector и stack, создавая одновременно
возможность перегрузки операций. В результате этих же усилий и благодаря содействию Д. Шапиро
появились строковые и списочные классы. Эти классы стали первыми библиотечными классами,
которые начали активно использоваться. Библиотека task, описываемая в [19] и в упражнении 13 из
$$6.8 стала частью самой первой программы, написанной на языке "С с классами". Эта программа и
используемые в ней классы были созданы для моделирования в стиле Симулы. Библиотека task была
существенно переработана Д. Шапиро и продолжает активно использоваться до настоящего времени.
Потоковая библиотека, как указывалось в
первом издании книги, была разработана и применена
автором. Д. Шварц преобразовал ее в потоковую библиотеку ввода-вывода ($$10), используя наряду с
другими приемами метод манипуляторов Э.Кенига ($$10.4.2). Класс map ($$8.8) был предложен
Э.Кенигом. Он же создал класс Pool ($$13.10), чтобы использовать для библиотеки предложенный
автором способ распределения памяти для классов ($$5.5.6). На создание остальных шаблонов
повлияли шаблоны Vector, Map, Slist и sort, представленные в главе 8.
Достарыңызбен бөлісу: