Читать интересную книгу Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 235 236 237 238 239 240 241 242 243 ... 337
class="p1">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. Что такое мультипарадигменное программирование? Приведите конкретный пример.

13. Когда была выполнена первая программа на компьютере, допускающем хранение данных в памяти?

14. Какую выдающуюся работу выполнил Дэвид Уилер?

15. Расскажите об основном вкладе Джона Бэкуса в создание первого языка программирования.

16. Какой первый язык разработала Грейс Мюррей Хоппер?

17. В какой области компьютерных наук выполнил свою главную работу Джон Мак-Карти?

18. Какой вклад внес Питер Наур в создание языка Algol-60?

19. Какую выдающуюся работу выполнил Эдсгер Дейкстра?

20. Какой язык спроектировал и реализовал Никлаус Вирт?

21. Какой язык разработал Андерс Хейльсберг?

22. Какова роль Жана Ишбиа в проекте Ada?

23. Какой стиль программирования впервые открыл язык Simula?

24. Где (кроме Осло) преподавал Кристен Нюгорд?

25. Какую выдающуюся работу выполнил Оле-Йохан Дал?

26. Какая операционная система была разработана под руководством Кена Томпсона?

27. Какую выдающуюся работу выполнил Дуг Мак-Илрой?

28. Назовите наиболее известную книгу Брайана Кернигана.

29. Где работал Деннис Ритчи?

30. Какую выдающуюся работу выполнил Бьярне Страуструп?

31. Какие языки пытался использовать Алекс Степанов для проектирования библиотеки STL?

32. Назовите десять языков программирования, не описанных в разделе 22.2.

33. Диалектом какого языка программирования является язык Scheme?

34. Назовите два наиболее известных наследника языка C++.

35. Почему язык C стал частью языка C++?

36. Является ли слово Fortran аббревиатурой? Если да, то какие слова в нем использованы?

37. Является ли слово COBOL аббревиатурой? Если да, то какие слова в нем использованы?

38. Является ли слово Lisp аббревиатурой? Если да, то какие слова в нем использованы?

39. Является ли слово Pascal аббревиатурой? Если да, то какие слова в нем использованы?

40. Является ли слово Ada аббревиатурой? Если да, то какие слова в нем использованы?

41. Назовите самый лучший язык программирования.

Термины

В этой главе раздел “Термины” содержит названия языков, имена людей и названия организаций.

• Языки

 • Ada

 • Algol

 • BCPL

 • C

 • C++

 • COBOL

 • Fortran

 • Lisp

 • Pascal

 • Scheme

 • Simula

• Люди

 • Чарльз Бэббидж

 • Джон Бэкус

 • Оле-Йохан Дал

 • Эдсгер Дейкстра

 • Андерс Хейльсберг

 • Грейс Мюррей Хоппер

 • Жан Ишбиа

 • Брайан Керниган

 • Джон Маккарти

 • Дуг Мак-Илрой

 • Питер Наур

 • Кристен Нюгорд

 • Деннис Ритчи

 • Алекс Степанов

 • Бьярне Страуструп

 • Кен Томпсон

 • Дэвид Уилер

 • Никлаус Вирт

• Организации

 • Bell Laboratories

 • Borland

 • Cambridge University (England)

 • ETH (Швейцарский федеральный технический университет)

 • IBM

 • MIT

 • Norwegian Computer Center

 • Princeton University

 • Stanford University

 • Technical University of Copenhagen

 • U.S. Department of Defense

 • U.S. Navy

Упражнения

1. Дайте определение понятия программирование.

2. Дайте определение понятия язык программирования.

3. Пролистайте книгу и прочитайте эпиграфы к главам. Какие из них принадлежат специалистам по компьютерным наукам? Напишите один абзац, суммирующий их высказывания.

4. Пролистайте книгу и прочитайте эпиграфы к главам. Какие из них не принадлежат специалистам по компьютерным наукам? Назовите страну, где они родились, и область работы каждого из них.

5. Напишите программу “Hello, World!” на каждом из языков, упомянутых в этой главе.

6. Для каждого из упомянутых языков программирования найдите популярный учебник и первую законченную программу, написанную на нем. Напишите эту программу на всех остальных языках, упомянутых в главе. Предупреждение: скорее всего, вам придется написать около ста программ.

7. Очевидно, мы пропустили много важных языков. В частности, мы были вынуждены отказаться от описания всех языков, появившихся после языка С++. Назовите пять современных языков, которые вы считаете достойными внимания, и напишите полторы страницы о трех из них.

8. Зачем нужен язык С++? Напишите 10–20-страничное сочинение.

9. Зачем нужен язык С? Напишите 10–20-страничное сочинение.

10. Выберите один язык программирования (не C и не C++) и напишите 10–20-страничное сочинение о его истории, целях и возможностях. Приведите много конкретных примеров. Кто использует эти языки и почему?

11. Кто в настоящее время занимает Лукасианскую кафедру в Кембридже (Lucasian Chair in Cambridge)?

12. Кто из разработчиков языков программирования, перечисленных в главе, имеет научную степень по математике, а кто нет?

13. Кто из разработчиков языков программирования, перечисленных в главе, имеет степень доктора философии, а кто нет? В какой области?

14. Кто из разработчиков языков программирования, перечисленных в главе, является лауреатом премии Тьюринга? За какие достижения? Найдите официальные объявления о присуждении премии Тьюринга лауреатам, упомянутым в главе.

15. Напишите программу, которая считывает файл, содержащий пары (имя, год), например (Algol,1960) и (C,1974), и рисует соответствующий график.

16. Модифицируйте программу из предыдущего упражнения так, чтобы она считывала из файла кортежи (имя, год, (предшественники)), например (Fortran, 1956, ()), (Algol, 1960, (Fortran)) и (C++, 1985, (C, Simula)), и рисовала граф со стрелками, направленными от предшественников к последователям. Используя эту программу, нарисуйте улучшенные варианты диаграмм из разделов 22.2.2 и 22.2.7.

Послесловие

Очевидно, что мы лишь вскользь затронули историю языков программирования и идеалов программного обеспечения. Поскольку мы считаем эти вопросы очень важными, мы не можем, к нашему величайшему огорчению, глубоко изложить их в настоящей книге. Надеемся, что нам удалось передать свои чувства и идеи, относящиеся к нескончаемому поиску наилучшего программного обеспечения и методов программирования при проектировании и реализации языков программирования. Иначе говоря, помните, пожалуйста, что главное, это программирование, т.е. разработка качественного обеспечения, а язык программирования — просто инструмент для ее реализации. 

Глава 23

Обработка текста

“Ничто не может быть настолько очевидным,

1 ... 235 236 237 238 239 240 241 242 243 ... 337
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп.
Книги, аналогичгные Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп

Оставить комментарий