Дополнительная литература
Библиотека стандартных шаблонов описана во множестве книг, включая "Генерацию программ и STL" Мэтью Остерна (Matthew Austern. Generic Programming and the STL. Addison-Wesley, 1998).
Для изучения самого языка C++ лучшим пособием является "Язык программирования C++" Бьерна Страуструпа (Bjarne Stroustrup. The C++ Programming Language. 3rd ed. Addison-Wesley, 1997)2, для изучения Java – "Язык программирования Java" Кена Арнольда и Джеймса Гос-линга (Ken Arnold and James Gosling. The Java Programming Language. 2mt ed. Addison-Wesley, 1998).
Лучшее, на наш взгляд, описание Perl приведено в "Программировании на Perl" Ларри Уолла, Тома Кристиансена и Рэндала Шварца (Larry Wall, Tom Christiansen and Randal Schwartz. Programming Perl. 2nd ed. O'Reilly, 1996).
В принципе, можно говорить о существовании неких шаблонов проектирования (design patterns) – действительно, в большинстве программ используется лишь ограниченное количество принципиальных проектировочных решений – точно так же, как существует лишь несколько базовых структур данных; с некоторой натяжкой можно сказать, что это аналог идиоматического кода, о котором мы говорили в первой главе.
Эта идея лежит в основе книги Эриха Гаммы, Ричарда Хелма, Ральфа Джонсона и Джона Влиссайдеса "Разработка шаблонов: элементы повторноиспользуемого объектно-ориентированного программного обеспечения" (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995).
Авантюрные приключения программы markov (которая изначально называлась shaney) были описаны в разделе "Computing Recreations" журнала Scientific American за июль 1989 года. Статья была перепечатана в книге Дьюдни "Магическая машина" (А. К. Dewdney. The Magic Machine. W. H. Freeman, 1990).