Персона Бьерна Страуструпа — биография, создание и использование языка С++

Биография

Окончил Орхусский университет (Дания, 1975) по математике и информатике, защитил диссертацию (Ph. D.) по информатике в Кембридже (1979). До 2002 возглавлял отдел исследований в области крупномасштабного программирования в компании AT&T (Computer Science Research Center of Bell Telephone Laboratories). Ныне профессор Техасского университета А&М.

Бьёрн родился и вырос в городе Орхус («Aarhus»), втором по величине городом в Дании. Он поступил в государственный университет на отделение компьютерных наук. Закончив его, он получил степень магистра. Бьёрн Страуструп получил степень доктора философии, когда работал над конструированием распределённой системы в Компьютерной Лаборатории Кэмбриджского Университета (Англия). Он член колледжа имени Черчилля, где он и его жена Марьян («Marian») провели несколько чудесных и занятых лет, где у них родилась дочь Аннемария.

В 1979 году Страуструп, вместе со своей женой и дочерью, переехал в Нью-Джерси, чтобы пойти работать в Компьютерный Научно-Исследовательский Центр Bell Telephone Laboratories. В этом же году у него родился сын, Николас («Nicholas»).

Бьёрн был главой отдела Исследования Программирования, со времени его создания в AT&T до 2002 года, когда он соединился с отделением Научных Исследований Техасского университета A&M.

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

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

Университет

Он впервые познакомился с компьютером уже в стенах ВУЗа. Algol-60 был первым языком программирования, который выучил Бьярне.

Орхусский университет входил в ТОП-100 высших учебных заведений мира. Страуструп со страхом думал о том, что ему придется работать учителем математики, если не найдется работа в сфере программирования. Он был убежден, что математика должна иметь практическое приложение.
Однако на втором курсе он понял, что программирование, и компьютерные технологии в целом, – это не только и не столько математика. Кроме того, оказалось, что Бьярне был не так хорош в математике, как он думал.

В одном из интервью Страуструп обозначил свою позицию по поводу обучения программированию:
Я оцениваю образование выше обучающих курсов. Я в большинстве случаев выберу специалиста с широким кругозором и глубокими базовыми знаниями, чем кого-то с сертификатом о прохождении узкоспециализированных курсов. Вообще мои идеал – это сочетание академических знаний и практических навыков.

В университетские годы Страуструп подрабатывал тем, что писал небольшие программы для подразделения компании Burroughs в Орхусе. Тогда он понял, что коммерческая разработка имеет мало общего с написанием программ для себя или друзей, и тем более, с выполнением лабораторных работ в ВУЗе. Бьярне получил опыт общения с пользователями, опыт поддержки и сопровождения кода.
Часть вырученных денег студент тратил на оплату собственного обучения. Помимо того, что он принес пользу себе, его разработки помогли вывести компанию на новый уровень: Burroughs в дальнейшем объединилась с Sperry, в результате чего образовалась компания Unisys – мировой производитель комплексных программно-аппаратных решений.
Кроме того, студент разрабатывал ПО и для нужд университета. В 1975 году Страуструп окончил его и получил степень магистра.

Кембридж

Ближе к концу обучения Бьярне заинтересовался микропрограммированием. Интерес усилился после стажировки в Кембридже. Поэтому Страуструп переехал в Англию, чтобы продолжить свое образование в Кембриджском университете. Там было все необходимое оборудование для изысканий в области микропрограммирования.

Кроме того, новый университет помог ему повысить требования к себе. В этом ВУЗе уровень студентов и педагогов был намного выше, чем в орхусском университете. Это мотивировало Страуструпа развиваться активнее.
В Кембридже, в Вычислительной лаборатории, он занимался проектированием распределенных систем. В 1979 году Бьярне получил докторскую степень.
В этом же году Страуструп вместе с женой Мэриэн переехал в Нью-Джерси (США), где стал работать в Центре компьютерных исследований фирмы Bell Labs. В то время фирма была в «дружеских» отношениях с Кембриджским университетом.

Для чего используют С++

Когда Страуструп занимался исследованиями в фирме, ему потребовалось написать несколько имитационных программ для моделирования распределенных вычислений. SIMULA-67 — объектно-ориентированный язык – мог бы стать идеальным инструментом для решения подобных задач, если бы не его сравнительно низкая скорость выполнения программ. К слову, этот язык Бьярне использовал еще во время написания своей диссертации в Кембридже – там он разрабатывал симулятор распределенных систем.
До этого в сферу интересов Страуструпа не входила разработка языков программирования. Его интересовало микропрограммирование, операционные системы, архитектура вычислительных машин, разработка виртуальных машин. Правда, еще до окончания университета он успел изучить двадцать языков программирования. Но несмотря на это, Бьярне утверждает, что большого интереса к языкам он все-таки не испытывал.
Тем не менее, Страуструп принял решение начать работу над новым языком программирования.
Если вам приходится выбирать между написанием «хорошего» и «быстрого» кода, значит, здесь что-то не так. Потому что «хороший» код должен быть «быстрым», – объясняет Страуструп свою позицию в интервью.
Так был создан язык программирования С++, первоначально получивший название «Си с классами» (С with classes). Название «С++» придумал Рик Мэсчитти. «++» — это оператор инкремента в С, который как бы намекает на то, что язык С++, нечто больше, чем просто С.
В 1983 году язык подвергся значительным изменениям. Страуструп разработал свой язык таким образом, чтобы код не компилировался в машинный язык, а преобразовывался в набор команд препроцессора языка С. Это открывало к нему доступ сотням тысяч С-программистов, имевших соответствующий компилятор.
В 1984 году Bell Labs была реорганизована и получила название AT&Т Bell Labs. Первыми, кому фирма предложила С++, причем практически бесплатно, стали университеты.
В 1985 году Страуструп опубликовал одну из самых широко известных книг «Язык программирования С++», которая выдержала четыре издания (1985, 1991, 1997, 2000), и была переведена на 19 языков.

Как пишет Том Даффи: «Множество открытий обязаны своим происхождением случаю. Но есть и немало других, которые стали возможны благодаря кропотливой работе и предвидению. Язык программирования С++, впервые предложенный лабораторией Bell Labs университетам в 1985 году, безусловно относится ко второй категории».
С++ широко используется, начиная с игр (вот несколько известных: Counter-Strike, World of Warcraft и StarCraft) и 3D-анимаций и заканчивая программным обеспечением для самолётов.

Вот некоторые сферы использования С++:

  • драйверы;
  • микроконтроллеры;
  • программное обеспечение, операционные системы;
  • прикладные приложения — медиаплееры, браузеры, текстовые редакторы;
  • нейросети;
  • игры для компьютера;
  • игры для Xbox и PlayStation;
  • проекты, где важно строго контролировать память.

Научная деятельность

Книга Бьерна Страуструпа «Язык программирования C++» переведена на 19 языков и является одной из самых наиболее читаемых книг в области программирования. Кроме данной книги Страуструп написал еще 4 книги и опубликовал больше ста популярных статей.

Б. Страуструп активно участвовал в создании стандарта ANSI/ISO для языка C++ и сегодня участвует в поддержании и пересмотре стандарта. «Справочное руководство по языку программирования С++ с комментариями» Страуструпа в 1990 году получило награду за высочайшее мастерство в технической документации. Книга «Дизайн и эволюция С++» в 1994 году получила награду «Productivity Award» за помощь программистам в области совершенствования их исходных кодов.

В 2004 году Бьёрна Страуструпа избрали членом НАИ (Национальная академия инженерии) в США за «создание языка С++».

Как работают программы

Любая программа работает с данными: она их получает, обрабатывает, а потом возвращает результат обработки. Данные могут быть переданы пользователем, считаны из файла или записаны в самом коде.

Например, браузер получает текст из адресной строки, который ввёл пользователь, отправляет адрес на сервер, а потом выводит ответ в виде страницы.

Также программа может состоять из других подпрограмм — наборов инструкций. Обработка запроса пользователя, отправка данных на сервер, получение ответа, вывод страницы — всё это подпрограммы.

Вот пример логики такой подпрограммы:

Можно вернуть данные пользователю, записать их в файл или передать другой подпрограмме. Вот ещё один пример использования программы:

Эта команда запускает программу в ОС Linux, которая конвертирует изображение img.jpg в другой формат, а потом сохраняет в файл img.png.

Сейчас слово «подпрограмма» встречается редко — вместо него используют слова «функция», «процедура» или «метод».

С++ против Java

С++ и Java нередко сравнивают, потому что оба — популярные высокоуровневые объектно-ориентированные языки. Какие у них различия?

  1. Зависимость от платформы: при компиляции программа на Java сначала переводится в особый байт-код с помощью интерпретатора. Благодаря этому код в Java можно запустить на любой платформе. С++ при компиляции переводится в машинный код, поэтому это платформо-зависимый язык.
  2. Указатели: огромная часть работы в С++— работа с указателями, а в Java их нельзя использовать.
  3. В Java нет многих комплексных функций, которые есть в С++,— например структур, указателей и объединений.
  4. Многопоточность поддерживается в Java, но не в С++.
  5. Уровень языка: и Java, и С++ — высокоуровневые языки, но на Java работать на низком уровне не получится, в отличие от С++.

С++ против C

C и С++ просто нельзя не сравнить: мы уже знаем, что они близки хотя бы из-за истории создания C++, но в чем-то же они должны различаться?

Вот эти различия:

  1. Объекты и классы. Ради них всё и затевалось: желание создать C с поддержкой ООП — причина, по которой появился С++.
  2. Синтаксис. Несмотря на то что синтаксисы С и С++ очень похожи, они не идентичны: например в С для управления памятью используются функции malloc (), calloc () и free (), а в С++ это New и Delete. Функции ввода и вывода тоже различаются: в C это scanf () и printf (), а в С++ — Cin и Cout.
  3. Сохранность данных выше в С++, чем в C.
  4. Ссылки.C поддерживает только указатели, а C++— ещё и ссылки.
  5. Уровень языка.С++ работает на высоком уровне, а С — ближе к машинному коду.
  6. Использование. Из предыдущего пункта вытекает и различие в применении: C вы найдёте в первую очередь в операционных системах и драйверах. С++ для этого тоже используют, но ещё на нём пишут и разные приложения, игры и многое другое.
Источники
  • https://www.livelib.ru/author/129-bjorn-straustrup
  • https://www.syl.ru/article/316626/bern-straustrup-istoriya-sozdaniya-s
  • https://habr.com/ru/post/313450/
  • https://skillbox.ru/media/code/vybiraem_yazyk_programmirovaniya_chto_nuzhno_znat_o_s_/
  • https://spravochnick.ru/informatika/bern_straustrup_programmist_i_informatik_avtor_yazyka_programmirovaniya_c/
  • https://skillbox.ru/media/code/izuchaem_c_chast_1/

tett
Зарплатто.ру - сайт о зарплатах и доходах, деньгах и финансах