Бьерн Страуструп. История создания С++

0
0

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

  • Степень магистра по окончании учебы в Орхусском университете (Дания) на отделении информатики.
  • Защита диссертации в Кембриджском университете. Членство в колледже им. Черчилля.
  • Переезд в Нью-Джерси и работа в компьютерном научно-исследовательском центре Bell Telephone Laboratories.
  • Руководство отделом исследований в области крупномасштабного программирования в компании AT&T Bell Labs.
  • Членство в Национальной Академии Инженерии (США).
  • Членство в Техасской академии медицины, инженерии и науки.

И множество заслуженных наград и премий, одна из которых – имени Грейс Мюррей Хоппер – была получена за разработку языка С++.

бьерн страуструп

Что придумал Бьерн Страуструп

Язык программирования C++ имеет историю, начинающуюся в 1979 году, когда талантливый программист делал работу для своего доктора философии. Языком, с которым он работал, являлся Simula, в основном предназначенный (судя по названию) для симуляций. Это первый язык, поддерживающий парадигму объектно-ориентированного программирования, которая, как обнаружил Бьерн Страуструп, являлась очень полезной для разработки программного обеспечения. Однако язык Simula был слишком медленным для практического использования.

Язык С

Вскоре после этого Бьерн Страуструп начал работу над «C с классами» (С++), который, как следует из названия, должен был быть надмножеством языка C. Его цель заключалась в том, чтобы добавить объектно-ориентированное программирование в язык "Си" (который был и остается языком, заслуживающим уважения за его мобильность), не жертвуя скоростью или низкоуровневой функциональностью. Его язык включал классы, базовое наследование, встраивание, аргументы функции по умолчанию и строгую проверку типов в дополнение ко всем функциям языка "Си".

бьерн страуструп язык программирования с

Компилятор

Первый компилятор "C с классами" был назван Cfront и получен из компилятора C CPre. Это была программа, предназначенная для перевода кода "C с классами" на обычный C. Интересный момент, который стоит отметить, заключается в том, что Cfront был написан в основном на «C с классами», что делает его самодостаточным компилятором (компилятором, который может скомпилировать себя). Впоследствии Cfront будет закрыт в 1993 году после того, как стало сложно интегрировать в него новые функции, а именно исключения C++. Тем не менее Cfront оказал огромное влияние на реализацию будущих компиляторов и на операционную систему Unix.

Хронология возникновения С++

В 1983 году название языка было изменено с "C с классами" на C++. Оператор ++ в языке C является оператором для приращения переменной. Это дает некоторое представление о том, как рассматривал Бьёрн Страуструп программирование и придуманный ним язык со множеством новых функций. Наиболее заметными из них являются виртуальные функции, перегрузка функций, ссылки с символом &, ключевым словом const и однострочные комментарии с использованием двух косых черт (это функция, которая берется из языка BCPL).

бьерн страуструп программирование

В 1985 году была опубликована книга Страуструпа под названием «Язык программирования С++», переведенная на 19 языков и выдержавшая 4 переиздания. В том же году C++ был реализован как коммерческий продукт. Язык официально еще не стандартизирован, что делает книгу очень важной. В 1989 году язык был обновлен, чтобы включить защищенные и статические члены, а также наследование из нескольких классов.

В 1990 году было выпущено справочное руководство Annotated C++. В том же году компилятор Borland Turbo C++ будет выпущен как коммерческий продукт. Turbo C++ добавил множество дополнительных библиотек, которые могут существенно повлиять на развитие C++. Хотя последний стабильный выпуск Turbo C++ был в 2006 году, компилятор все еще широко используется.

В 1998 году комитет стандартов C++ опубликовал первый международный стандарт для C++ISO IEC 14882:1998, который будет неофициально известен как C++98. Считалось, что справочное руководство Annotated C++ оказало большое влияние на разработку стандарта. Также была включена Стандартная библиотека шаблонов, которая начала свое концептуальное развитие в 1979 году. В 2003 году комитет ответил на многочисленные проблемы, о которых сообщалось в их стандарте 1998 года, и пересмотрел его соответствующим образом. Измененный язык получил название C++03.

Бьерн Страуструп биография

В 2005 году комитет стандартов C++ выпустил технический отчет (получивший название TR1), где подробно описывались различные функции, которые они планировали добавить к последнему стандарту C++. Новый стандарт был неофициально назван C++ 0x, поскольку ожидается, что он будет выпущен примерно до конца первого десятилетия. Как ни странно, однако, новый стандарт не будет выпущен до середины 2011 года. До этого было выпущено несколько технических отчетов, и некоторые компиляторы начали добавлять экспериментальную поддержку новых функций.

Стандарт 2011

В середине 2011 года был завершен новый стандарт C++ (получивший название C++ 11). Проект библиотеки Boost оказал значительное влияние на новый стандарт, и некоторые из новых модулей были получены непосредственно из соответствующих библиотек Boost.

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

Некоторые из новых функций включали поддержку регулярных выражений (подробную информацию о регулярных выражениях можно найти здесь), всеобъемлющую библиотеку рандомизации, новую библиотеку времени C++, поддержку атомистики, стандартную библиотеку потоков (которая до 2011 года как в C, так и в C++ отсутствовала), новый синтаксис цикла for, обеспечивающий функциональность, аналогичную циклам foreach в некоторых других языках, ключевое слово auto, новые классы контейнеров, более эффективную поддержку объединений и списков инициализации массивов и варидических шаблонов.