Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
Я часто сожалел, что не мог использовать в этой книге возможности версии C++0x. Это упростило бы многие примеры и объяснения. Примерами компонентов стандартной библиотеки версии С++0х являются классы
Ссылки
Публикации Александра Степанова: www.stepanovpapers.com.
Домашняя
ISO/IEC 14882:2003. Programming Languages — C++. (Стандарт языка C++.)
Stroustrup, Bjarne. “A History of C++: 1979–1991. Proceedings of the ACM History of Programming Languages Conference (HOPL-2). ACM SIGPLAN Notices, Vol. 28 No. 3, 1993.
Stroustrup, Bjarne. The Design and Evolution of C++. Addison-Wesley, 1994. ISBN 0201543303.
Stroustrup, Bjarne. The C++ Programming Language (Special Edition). Addison-Wesley, 2000. ISBN 0201700735.
Stroustrup, Bjarne. “C and C++: Siblings”; “C and C++: A Case for Compatibility”; and “C and C++: Case Studies in Compatibility”. The C/C++ Users Journal. July, Aug., and Sept. 2002.
Stroustrup, Bjarne. “Evolving a Language in and for the RealWorld: C++ 1991–2006”. Proceedings of the Third ACM SIGPLAN Conference on the History of Programming Languages (HOPL-III). San Diego, CA, 2007.cfm?id=1238844.
22.2.7. Современное состояние дел
Как в настоящее время используются языки программирования и для чего они нужны? На этот вопрос действительно трудно ответить. Генеалогическое дерево современных языков, даже в сокращенном виде, слишком перегружено и запутано.
Тем не менее мы обязаны ответить на этот вопрос, поскольку в 2008 году в мире было около десяти миллионов профессиональных программистов. Об этом свидетельствуют отчет С89 С++ компании IDC (специализирующейся на сборе данных), дискуссии с издателями и поставщиками компиляторов, а также различные источники в сети веб. Можете с нами спорить, но нам точно известно, что от одного до ста миллионов человек хотя бы наполовину подходят под разумное определение программиста. Какие языки они используют? Вероятно (просто вероятно), что более 90% их программ написано на языках Ada, C, C++, C#, COBOL, Fortran, Java, PERL, PHP
и Visual Basic.
22.2.8. Источники информации
Описание каждого языка содержит свой собственный список ссылок. Ниже приведены ссылки для нескольких языков.
Страницы и фотографии разработчиков языков программирования
www.angelfire.com/tx4/cus/people/.
Несколько примеров языков программирования
http://dmoz.org/Computers/Programming/Languages/.
Учебники
Scott, Michael L. Programming Language Pragmatics. Morgan Kaufmann, 2000. ISBN 1558604421.
Sebesta, Robert W. Concepts of Programming Languages. Addison-Wesley, 2003. ISBN 0321193628.
Книги об истории языков программирования
Bergin, T.J., and R.G. Gibson, eds. History of Programming Languages — II. Addison-Wesley, 1996. ISBN 0202295021.
Hailpern, Brent, and Barbara G. Ryder, eds. Proceedings of the Third ACM SIGPLAN Conference on the History of Programming Languages (HOPL-III).
San Diego, CA, 2007. http://portal.acm.org/toc.cfm?id=1238844.
Lohr, Steve. Go To: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists and Iconoclasts—The Programmers Who Created the Software Revolution. Basic Books, 2002. ISBN 9780465042265.
Sammet, Jean. Programming Languages: History and Fundamentals. Prentice-Hall, 1969. ISBN 0137299885.
Wexelblat, Richard L., ed. History of Programming Languages. Academic Press, 1981. ISBN 0127450408.
Контрольные вопросы
1. Зачем нужна история?
2. Зачем нужны языки программирования? Приведите примеры.
3. Перечислите некоторые фундаментальные принципы хороших языков программирования.
4. Что такое абстракция? Что такое высокий уровень абстракции?
5. Назовите высокоуровневые идеалы программирования.
6. Перечислите потенциальные преимущества высокоуровневого программирования.
7. Что такое повторное использование кода и в чем заключается его польза?
8. Что такое процедурное программирование? Приведите конкретный пример.
9. Что такое абстракция данных? Приведите конкретный пример.
10. Что такое объектно-ориентированное программирование? Приведите конкретный пример.
11. Что такое обобщенное программирование? Приведите конкретный пример.
12. Что такое мультипарадигменное программирование? Приведите конкретный пример.