Разное

Бьярне страуструп: Язык программирования C++. Специальное издание Страуструп Бьерн | Страуструп Бьерн

Содержание

Бьярне Страуструп о контроле над языком, удалении старых функций, заимствованиях у Rust и многом другом

Этим летом на онлайн-конференции C++ Russia побывал самый почетный гость, какой только может быть на мероприятии по C++: создатель этого языка Бьярне Страуструп. Мы поговорили с ним о контроле над языком, нововведениях, удалении старых функций, о том, почему у языка нет четкой экосистемы, и как так получилось, что у С++ нет стандартной сетевой библиотеки.

А поскольку сообщество C++ вечно обсуждает Rust, не обошлось и без вопроса о заимствованиях между этими языками.

Бьярне не нуждается в представлении, но у него столько активностей и заслуг, что попробуем перечислить:

  • написал множество публикаций, в том числе книги «Язык программирования С++» и «Программирование: Принципы и практика использования C++»
  • работает управляющим директором в отделе технологий компании «Морган Стенли» в Нью-Йорке
  • преподает в Колумбийском университете
  • принимает активное участие в работе комитета по стандартизации C++
  • состоит в Национальной академии инженерии США, IEEE, Ассоциации по вычислительной технике. Исследует программирование в области распределенных вычислений, инструменты развития ПО и языки программирования.
  • магистр и заслуженный профессор Орхусского университета и доктор по направлению «Информатика» Кембриджского университета, почетный член научного сообщества Колледжа Черчилля, заслуженный профессор Санкт-Петербургского ИТМО

Вопросы ему задавали Сергей Платонов (С++ программист, организатор С++ Siberia) и Сергей Федоров (руководитель разработки бэкенда Яндекс.Лавки). Под катом — перевод, а также видеозапись интервью для тех, кто хочет послушать на английском.

Об истории

Сергей Платонов: Спасибо, что присоединились к нам. Говорить с вами — большая честь. У нас есть несколько вопросов от сообщества, но хотелось бы начать с тех, что проще и короче. Начнем с истории, поскольку об этом часто спрашивают. В первую очередь хотелось бы сказать, что вы самый упоминаемый спикер. Каждый раз, когда мы спрашиваем у зрителей, кого следует пригласить на конференцию, первым называют ваше имя. Зрителям хотелось бы поучаствовать в обсуждениях, в живом общении. Не могли бы вы в паре предложений рассказать, как вы стали создателем C++? С чего все началось? Мне кажется, все читали «Дизайн и эволюцию», но если возможно, хотелось бы услышать ее укороченную версию.

Бьярне: Я пришел к C++, когда захотел создать систему для Bell Labs, которая бы стала первым UNIX-кластером. Это была бы система для распределенных вычислений, объединенная в общую сеть из нескольких компьютеров. Мне предстояло написать код, который бы работал на нижнем уровне, на уровне железа: диспетчеры памяти, планировщики процессов, сетевые интерфейсы и все в таком духе. И при этом нужно было уйти от железа. Мне нужно было перейти на высший уровень, чтобы заставить один код взаимодействовать с другим, используя определенный протокол передачи данных определенным образом.

Итак, мне нужен был язык программирования, который бы работал и на низшем, и на высшем уровне. В то время было как минимум с десяток языков, которые справлялись с задачами низшего уровня, C был одним из них. Лаборатория Денниса Ритчи и Брайана Кернигана находилась в одном коридоре с моей, поэтому дальнейшие действия казались очевидными, но на тот момент я подумал, что этот язык работал со слишком низким уровнем. Мне были нужны механизмы абстракции. У меня был опыт работы с Симулой, о которой я узнал от Кристена Нюгора. И я взял классы из Симулы, перенес их в C, сделав его достаточно эффективным для программирования сложных систем. На второй неделе работы над проектом я добавил конструкторы и деструкторы. Тогда они были нужны, в том числе для управления ресурсами. Затем я добавил то, что сейчас называется прототипами функций и проверку аргументов функции.

Основой C++ стала его возможность эффективной абстракции, ядром которой являются статическая проверка типов, конструкторы и деструкторы, что в совокупности позже начало именоваться как RAII (Resource Acquisition Is Initialization, «получение ресурса есть инициализация»). В 80-е у меня было совсем мало времени на изобретение хороших названий для хороших технологий, лучше, чем RAII, я ничего не придумал, так что уж имеем то, что имеем.

Контроль над языком

Сергей П.: Вы не помните тот момент, когда C++ ушел из-под вашего контроля в руки сообщества?

Бьярне: У меня, на самом деле, не было никогда контроля над языком в полном смысле слова. Как только языком начинают пользоваться, у его создателя появляются свои обязанности. Нужно отвечать на запросы пользователей. В моем случае это случилось спустя шесть месяцев после запуска проекта. Появился пользователь, и я потерял возможность выносить единоличные решения. Я не мог решиться пойти на то, чтобы все сломать.

Потом, где-то спустя 10 лет, люди из IBM и Sun, а также представители HP пришли ко мне в офис и сказали: «Знаешь, Бьярне, надо сделать так, чтобы C++ соответствовал нормам ISO». Я тогда объяснил, что это невозможно. Было слишком рано, я не был готов. После часового разговора я согласился, так как выбора у нас не было. Они объявили, что не могут позволить своим компаниям зависеть от чего-то, что зависит от их потенциального конкурента, например, AT&T. Помню, они сказали: «Мы, конечно, тебе доверяем, но скорее всего мы назначим тебе начальника». И тогда мы начали стандартизацию.

В целом, процесс стандартизации очень непрост и сильно раздражает. Многие стороны со своими потребностями должны прийти к единому мнению относительно вещей, на которые у всех разные взгляды. Спустя годы мне кажется, мы все сделали совсем недурно. Сегодня у нас есть проблемы посерьезнее. Тогда собиралось 60 человек, все друг друга знали, было доверие. Сейчас у нас 230–240 человек, мы не можем хорошо узнать друг друга. Работа сейчас строится иначе, и она стала труднее. И, конечно же, в этом году нам приходится связываться через Интернет, потому что собрания запрещены. Пройди встреча комитета по C++ в течение недели в одном небольшом помещении, мы бы точно потеряли часть людей — языку это бы не пошло на руку.

Работа в комитете

Сергей Федоров: Не могли бы вы рассказать, какую позицию в комитете занимаете на данный момент?

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

Вы, возможно, видели мои выступления, где я рассказывал о «Вазе» — шведском боевом корабле, построенном в 20-е годы XVII века.

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

Итак, корабль следовало построить к сроку. Они успели. После создания чего-либо необходимо это что-либо испытать. Боевые корабли проходили испытания по следующему принципу: команда корабля в полном составе встает у одного борта. Затем по команде бежит к другому борту, добежав, разворачивается и бежит обратно. И так 14 раз. Если корабль не переворачивается, значит, он прошел испытания. Команде удалось сделать 7 пробегов, а затем испытание остановили из страха, что он опрокинется. Собственно, испытания провели не полностью, сэкономив на этом. Очень зря. Как бы там ни было, в день спуска на воду ничего не предвещало беды: развевающиеся флаги, духовой оркестр, прекрасные статуи, гром холостых выстрелов. Корабль проходит через бухту в Стокгольме, которая является серединой маршрута. Но вдруг порыв ветра переворачивает корабль, который в итоге идет ко дну. Спустя 350 лет его достали со дна и разместили в красивом музее в Стокгольме. Если когда-нибудь будете в этом городе, обязательно посмотрите на корабль «Ваза». Он очень красив и выглядит впечатляюще.

Несколько лет назад мы собирали комитет по стандартизации в Стокгольме. Тогда мы все дружно пошли в музей, чтобы посмотреть на корабль, и тогда же на долгие годы вперед закрепился наш девиз: «Не забывайте, что случилось с «Вазой»». Правильно проработайте базу, не экономьте на испытаниях и не заказывайте себе слишком много красивых статуй. Этот девиз начал постепенно забываться, и я пытаюсь напоминать о нем людям. Может быть, нам стоит еще раз собраться в Стокгольме.

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

Нововведения

Сергей Ф.: К слову о красивых новых пушках, в новых стандартах C++ присутствуют функции, которые вас особенно раздражают?

Бьярне: Да нет. Мне кажется, C++20 будет отличным стандартом, мы наконец-то воплотили в жизнь концепции. Я бы хотел внедрить их еще в 1986—1988 годах, когда я создал шаблоны, но не знал, как это сделать. Мы попытались в стандарте C++11, но у нас не получилось все сделать как надо. Я надеялся, что к стандарту С++17 все будет готово, поскольку у нас появилось необходимое понимание, но в итоге, они появятся лишь в С++20. У нас наконец-то появится нормальное обобщенное программирование. Благодаря этому выражения станут четче, проще, и все будет работать намного быстрее. Добавьте к этому constexpr, и вы получите сильно упрощенное обобщенное программирование и сильно ускоренное метапрограммирование во время компиляции.

Другое нововведение, которым я очень доволен, это сопрограммы. Сопрограммы были в основе C++ в первые 10 лет. Я тогда писал симуляции и то, что сегодня называют многопоточными программами, с помощью сопрограмм. Мои симуляции были меньше и быстрее любых аналогов. А также они были меньше и быстрее потоков. Здорово, что мы вернули сопрограммы. Мы когда-то ушли от них потому, что компания Sun не хотела внедрять их в архитектуру Spark, поскольку очевидная реализация управляет стековыми фреймами. Сегодня же мы имеем более быстрые сопрограммы.

И теперь перейдем к последней функции, которая, скорее всего, будет играть важнейшую роль в долгосрочной перспективе. Это модули. По сути, это относится к организации программы, а не к написанию кода. Если вернуться во времена Windows DNA, я помню, как я мечтал о нормальном методе разнесения программ по частям. Нам приходилось пользоваться заголовочными файлами. Тогда в 80-е и 90-е мы знали, как лучше. Введение новых возможностей в язык с несколькими сотнями миллиардов строчек кода не так просто, но мы сделаем это. Итак, модули. Они значительно повысят скорость компиляции. Я видел, как скорость возрастает в 50 раз, если сравнивать с методом использования заголовочных файлов. Надеюсь, что большинство программ ускорится, скажем, в семь раз. И, наконец, мы нашли способ предотвратить распространение макросов по всей системе. Вы помещаете макрос в заголовочный файл, кто-то затем включает ваш заголовочный файл в свой файл, затем этот файл включается в следующий файл, и так ваш макрос присутствует в конечном файле, создатель которого даже не знает о существовании вашего заголовочного файла, из которого появился макрос. С появлением модулей эта проблема уйдет. Теперь код чище, и именно благодаря этому повышается скорость компиляции. Думаю, эти три функции — самые важные, они будут в значительной мере влиять на написание кода в следующие десять лет.

Есть небольшая проблема отсутствия поддержки стандартной библиотеки. Сегодня не существует одного стандартного набора модулей, кроме того, сопрограммы не поддерживаются библиотеками в полной мере. В стандартной библиотеке есть некоторые концепции, поэтому, я считаю, у нас все будет хорошо. Надеюсь, в стандарт С++23 будут включены все новые возможности. Трудно обеспечить библиотеками то, что пока не внедрено. Мы решили, что сначала введем новые функции в язык, чтобы опробовать их в деле в разных масштабах. Нам нужны программы с миллионами строчек кода — в них новые возможности будут использоваться в полной мере. Затем, набравшись опыта, мы доработаем их в стандарте С++23, и их использование станет проще и, наверное, быстрее.

Удаление старых функций

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

Бьярне: Этот вопрос касается большого и сложного дела. Не думаю, что в C++ есть какая-либо основополагающая функция, которую мы могли бы удалить, не разозлив несколько сотен тысяч или даже миллион пользователей. Такого не должно произойти. Если посмотреть на этот вопрос философски, я могу сказать, что основные функции языка хороши, другое дело — мелкие детали. Но с этим мы ничего поделать не можем. Мы разрабатываем язык, смотрим на то, как он функционирует, опираясь на отзывы. Однако, как бы то ни было, когда мы вводим что-то масштабное, убрать это нововведение не так просто. Несколько раз мы пытались удалить старые возможности, и каждый раз у нас не получалось. В рамках стандарта ISO мы можем сократить функционал языка с помощью так называемой депрекации, объявляя функции устаревшими. Мы объявляем пользователям, что одна из функций языка больше не будет использоваться и мы удалим ее через 3–5–10 лет. Этот подход не работает с основополагающими функциями.

В течение десятилетия нам никак не удавалось убрать триграфы. Сейчас мы от них избавились, при этом большинство даже никогда не слышало о триграфах. Оказалось, что каждая машина в IBM не может запуститься без триграфов. Убрать триграфы языка — убить IBM. Такого не должно произойти, да и в IBM любят цепляться за старые фишки. И снова нам приходится сообщать о том, что мы удаляем возможности, что ими не стоит пользоваться. Нам было очень сложно избавиться от правила implicit int, хотя в C++ его никогда и не было, оно пошло от C.

Все мечтают избавиться от тех вещей, которые им не нравятся, от всего устаревшего и прочего. Но договориться о том, что устарело, что не нужно, никто не может. Получается, что не существует согласия между 4,5 млн программистов, пишущих на C++. Более того, его никогда и не будет. Добавьте к вышесказанному и то, что после удаления функции из языка, поставщики компиляторов будут вынуждены поддерживать ее еще лет 20–30. В общем, что-то убрать почти невозможно. Даже если мы придем к согласию, все равно удаление не пройдет легко.

Сегодня мы не можем поменять или убрать основополагающие функции, при этом тратить время на удаление каких-то мелких функций кажется совсем смешным. Так как же заставить людей двигаться дальше? Во-первых, обучить их писать на современном C++. Сегодня все еще много тех, кто начинает изучать C и загоняет себя в ловушку бессмысленного распределения памяти, вместо того, чтобы обратить внимание на векторы, RAII и прочее. Во-вторых, нам нужно поддерживать современный подход к программированию, который проще и благодаря которому создаются более быстрые и менее объемные коды. Когда кто-то начинает писать операции над строками в стиле из C, он обычно получает баги и медленный код. Эксперты справляются лучше, но у экспертов, как правило, есть дела поважнее.

Я работаю с друзьями над C++ Core Guidelines. Если им следовать, можно сказать, набору правил, а не беспорядочно использовать все функции языка, ваш код будет лучше и вы пойдете спать раньше. Да, это правила. Нам всем не нравятся правила, их трудно запомнить, поэтому для них нужна поддержка. Правила отчасти зависят от стандартной библиотеки и от 10 небольших компонентов из GSL (guidelines support library), которые мы хотим перенести в стандарты, чтобы избавиться от необходимости в GSL.

Например, мы добавили span в стандарт C++20. Span – это простая абстракция, по сути, указатель плюс размер. Если нужна ссылка на непрерывный набор элементов, используете span, который знает расположение элементов и их количество, поэтому вы можете задать диапазон и, при желании, произвести проверку диапазона. При этом у вас нулевой шанс ошибиться.

Предположим, у нас есть массив, мы берем span, присваиваем ему значение массива. Span обратится к массиву, поймет, какие в него входят элементы, они получат тип span-а. Далее он узнает количество элементов в массиве, возьмет этот размер. Все, вы получаете правильную абстракцию непрерывной последовательности битов, как с объектами, и это вам необходимо для коммуникационных программ и прочих низкоуровневых дел. Деннис Ритчи хотел сделать что-то похожее в C, но ему сказали, что ничего не выйдет. Это все не ново, но полезно. Это одна из мелочей, которая реально помогает в работе.

Не все мелкие фишки можно сравнить с бесполезными, но очень помпезными статуями на «Вазе». Некоторые фишки действительно отвечают запросам сообщества. В общем, ответом на ваш вопрос будет то, что мы не можем избавиться от старых функций, но мы можем издать рекомендации, согласно которым, их лучше не использовать. Мы можем создать инструменты статического анализа, которые бы принуждали подчиняться этим рекомендациям. В частности, я работаю с сотрудниками Microsoft и Facebook над проверками безопасности памяти. Эти проверки проводятся с целью предотвратить повреждение памяти, доступ к удаленному объекту, потерю ресурсов, а также способствуют использованию RAII.

А при включении другой статической проверки, первая будет предотвращать переполнение буфера. Например, при использовании указателей вы рано или поздно придете к переполненному буферу. При использовании общих указателей рано или поздно дело придет к висячему указателю. Например, согласно нашим правилам, вы должны использовать span вместо указателя. Используете RAII, затем включаете проверку (сейчас она развертывается в Visual Studio, поэтому то, чем я говорю, — реальность) и избавляете себя от всех проблем с памятью. Проверка обнаружит все проблемы.

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

Об экосистеме

Сергей Ф.: Почему, по вашему мнению, у С++ нет четкой экосистемы?

Бьярне: Потому что у языка нет законного владельца. Нет одной компании, которая бы все контролировала. Каждый создает что-то свое. Мы начинали вообще без финансирования, если говорить об исследовательских проектах в Bell Labs. Я самостоятельно делал 98% работы по первому коммерческому запуску языка: составлял документацию, учебные библиотеки и прочее. Наш рекламный бюджет тогда был 5000 долларов на три года, и тогда я вернул 1000, потому что не знал, как правильно распорядиться средствами.

Многие не понимают, что у C++ никогда не было бюджета. Вместо денег было сообщество, причем не одно сообщество, а множество. Проблема состоит не в отсутствии графического интерфейса, а в том, что их 25. Проблема не в том, что у нас нет системы сборки, а в том, что их 7. Это я еще преуменьшаю. Люди не могут прийти к единому мнению. Все принадлежат к разным сообществам. Все хотят делать по-своему, никто не хочет слияний. Некоторые проблемы лежат в коммерческой плоскости, некоторые части имеют открытый код, аспекты вызывают проблемы из-за большого самомнения некоторых лиц. В итоге у нас демократический хаос, и я не знаю, как его прекратить.

Возможно, если бы я обладал лучшими навыками организации, мы могли бы еще что-то сделать, когда это было возможно, а возможно это было в 80-е. Правда, в 80-е и особенно в 90-е все хотели создать свое сообщество, организованное вокруг своего решения и своего подхода. Тогда в игре были Microsoft, IBM и еще пара-тройка серьезных компаний. Все пытались создать что-то вне конкуренции, чтобы заполучить побольше пользователей. Компании тогда приходили к решениям, которые были несовместимы с решениями конкурентов, чтобы потребители вдруг не ушли к последним. У нас же было наибольшее количество инструментов, и в большинстве случаев, это не является преимуществом. Как определиться с системой сборки? Как определиться с графическим интерфейсом? Сложно. Подумайте, каково было новичку.

Сергей П.: У нас нет простой системы сборки, которая будет без проблем работать в любой системе.

Бьярне: Нет-нет, мы можем предложить вам как минимум три, которые плюс-минус подходят под ваши критерии.

О рейтингах и популярности языка

Сергей П.: Вам важно то, какое место C++ занимает в рейтингах? Следите ли вы за популярностью языка, за какой-либо статистикой? У нас на конференции будет отдельный разговор о C++ и его месте в мире.

Бьярне: Не думаю, что до конца понял вопрос. Попытаюсь ответить на него и, если я уйду не в ту сторону, поправьте меня. Я стараюсь сосредоточить внимание на самом языке и стандартной библиотеке. Я не лучший собеседник по темам вселенной C++, плеяды доступных инструментов, рекламных аспектов или открытого кода. Слишком много информации для одного человека. И я не обращал внимания на статистику. Ее очень сложно получить. Сложно считать пользователей.

Хорошо, что кто-то этим занимается. Проводятся опросы, часть информации доходит и до меня. Поэтому-то я и оперирую числом в 4,5–5 миллионов разработчиков C++. Но кто такой разработчик? Кто такой программист? Учитывать ли студентов? А всех студентов или только очников? Все эти числа очень условны, но я, как по мне, опираюсь на самые скромные подсчеты. Я бы мог назвать и число побольше, но не собираюсь, поскольку тогда мы будем учитывать тех, кто пользуется C++ не постоянно, а это не лучший способ подсчета.

Можно спросить у тех, кто может сказать, сколько у них пользователей потому, что они как минимум могут подсчитать количество заплативших за продукт или число скачиваний, что, в целом, тоже не лучший метод подсчета. Я раньше руководствовался такой логикой: если люди не жалуются, значит, они не пользуются C++. Конечно, у нее есть свои минусы. Это я тоже знал. Компания AT&T решила провести опрос пользователей об их опыте, поскольку была необходимость следить за распространением языка, хотя он и был бесплатным. Они обнаружили, что 4 из 5 разработчиков используют C++. Это расходилось с моими подсчетами, в которых я не учитывал тех, кто не жаловался. В общем, считать — проблематично.

Сетевая библиотека

Сергей Ф.: Вы говорили, что начали разрабатывать C++, когда вам понадобилось средство, чтобы преодолеть сложность организации сетевой системы. Как же так получилось, что у C++ нет стандартной сетевой библиотеки?

Бьярне: Опять же, проблема не в том, что нет сетевой библиотеки. У нас нет стандарта. С середины 80-х появлялось много библиотек. Сегодня многие пользуются библиотекой Asio, которую технически можно назвать стандартной. Думаю, что в C++23 мы добавим её. Но начинаются разговоры, что нужно больше поддержки. Помимо Asio, нужно добавить то, чего не дает Asio. И это обыденный хаос в мире C++. У нас даже нет стандарта для места хранения библиотек. Никто как следует не позаботился о создании хорошего сообщества C++. Даже удивительно, как этот язык пережил десятилетия конкуренции. Я написал статью о последних 15 годах развития C++ для конференции по истории языков программирования. Эта статья стала доступна буквально две недели назад на сайте Ассоциации по вычислительной технике. Поищите её там. Или можете пройти на мою страничку и найти ее в разделе со статьями. В статье я объясняю все события, произошедшие за последние 15 лет. Она называется Thriving in a Crowded and Changing World. В ней описываются последние 15 лет развития C++, работа над стандартами 11, 14, 17 и 20, а также некоторые проблемы сообщества. На большую часть заданных сегодня вопросов можно найти более глубокие ответы именно в статье. Сейчас я не могу отвечать в той же степени пространно. В интервью все рассуждения так или иначе абстрактны, нет возможности подтвердить слова документацией, но большая часть сказанного мною встретится вам в названной статье, оцененной другими учеными. Она не короткая. В ней 168 страниц, 30 из которых занимает список источников. На ее прочтение стоит выделить выходные.

О заимствовании фишек

Сергей П.: Как вы думаете, Rust оказывает влияние на C++ или, может быть, начнет в обозримом будущем? Может ли случиться так, что C++ позаимствует некоторые функции Rust?

Бьярне: По-моему, это скорее Rust заимствует фишки C++, а его разработчики забывают об этом рассказать. RAII был в C++ на протяжении 40 лет. Меня иногда обвиняют в том, что я своровал эту концепцию. Сообщество, конечно, не сильно опирается на академические труды или историю. То же самое и с линейной логикой и семантикой владения, над которыми я работал на протяжении 20 лет. Это фундаментальные вещи, описанные в ключевых рекомендациях. Там же описано и то, что я задумывался об этих вещах еще с середины нулевых. Думаю, мы лучше, чем Rust, просто люди этого не понимают. Я не видел в этом языке ни одной функции, которую я бы очень хотел добавить в C++. Некоторые вещи нельзя просто включить в язык. Ключевые рекомендации могут как-то показать схожесть языка с Rust, но они были написаны задолго до него. Я знаю историю Rust и проблемы заимствования (borrowing), но это слишком сложная тема.

Я экспериментировал с этим в середине нулевых, и в результате экспериментов, код превращался во что-то страшное, слишком много всего приходилось обходить. Кроме того, С++ соотносится с C, что накладывает некоторые ограничения на совместимость, от этого заимствовать только сложнее.

Я обращаю внимание на любой появляющийся язык программирования, ладно, не на любой — их слишком много. Я обращаю внимание на языки программирования с интересными фишками. Если какая-то функция мне нравится и ее можно добавить в C++, я сделаю это и дам ссылку на источник. Люди могут сказать, что это кража идеи; на самом деле, нет, ведь ты сообщаешь, у кого ты ее позаимствовал. Rust не особо привлекателен для заимствований. При этом уже поступают предложения ввести в Rust что-то вроде механизмов для объявления функций устаревшими. Как по мне, это говорит о том, что они еще не пробовали удалять ненужные функции. Да и зачем? Язык еще слишком молод. Они и не могли попробовать удалить что-то устаревшее. А со временем язык будет шириться, и это сильно осложнит задачу. Со временем появляются пользователи и достаточное количество строчек кода. Кстати, был опрос, в котором у людей спросили, на чем им больше всего нравится писать программы. Rust выиграл с отрывом. При этом, из тех, кто отдает предпочтение Rust, лишь три процента написали программу на этом языке. Я тогда удивился. Это же абсурд, какого не ожидаешь.

Сергей П.: Какой язык, кроме C++, вам нравится? Может быть, приходит в голову какой-нибудь редкий язык? Или может быть, вы расскажете об идеях, воплощение которых в другом языке вам пришлось по душе?

Бьярне: Я стараюсь избегать сравнений языков программирования. Не хочу много говорить об этом. У нас есть планы на C++23: мы хотим завершить работу над поддержкой модулей, сопрограмм и еще поработать над концепциями. Если мы все сделаем, то сможем заняться вещами на будущее. Мы, очевидно, позаимствуем из другого языка сопоставление образцов из функционального программирования. Мне нравится эта возможность, я предлагал ее добавить еще в 2015 в C++17. Мы пока собрали рабочую группу, работаем над этим. Возможно, эта возможность появится в C++23. Благодаря этой функции ускорится проверка типов и появится код курсора. Такая версия C++ будет работать и с алгебраическими типами и открытыми иерархиями, и это станет альтернативой dynamic_cast’у. Очевидно, что все эти идеи пришли к нам так или иначе из ML.

Еще одна важная вещь, на которую мы обратили внимание, но вряд ли сможем сделать к C++23 — статическая рефлексия. Рефлексия — отличная штука, которая, к сожалению, очень медленно работает, является очевидной слабостью системы типов и порождает ошибки. Мы уже работали над статической рефлексией. Суть её работы заключается в том, что код узнает от компилятора информацию о программе и на ее основе создает новый код. Тогда бы можно было сказать: дайте несколько программ для чтения и записи файлов формата JSON определенных типов. Когда этот процесс завершится во время компиляции, будет сгенерирована точная поддержка среды для определенного приложения. Сравните это с представлением вашей программы в виде графа, в случае если у кого-то появится необходимость в нем. Все предложения по нововведениям можно найти на сайте WG21. WG21 — это официальное название от ISO для рабочей группы. Все предложения и статьи от 1990 года выгружаются на сайт группы.

Виртуальные функции

Сергей Ф.: Благодарю. Я большой поклонник статической типизации. Что вы думаете о виртуальных концептах или добавлении любого другого type erasure механизма?

Бьярне: Я не могу сказать, что готов ответить на этот вопрос. Я был соавтором статьи о виртуальных концептах, написанной в середине нулевых, но не думаю, что они могут сыграть ключевую роль в развитии C++. И я не большой поклонник type erasure. У нас есть виртуальные функции, некоторые считают их type erasure механизмом. И я думаю, этого достаточно. Наверное, отчасти я говорю так потому, что мы не можем воспринимать сообщество программистов как единое целое. Существует множество сообществ со своими потребностями. Конечно, гибкий и простой код хотели бы многие, но если есть нужда, например, запрограммировать тормозную систему автомобиля или органы управления самолетом или электростанцией, я бы доверил эту работу программистам, работающим рука об руку с инженерами с серьезной подготовкой и инструментами, которые настроены специально под решение их задач и предлагают производительность и надежность высшего уровня. Если речь идет о программировании обработки сигнала для описанных выше технических решений, на первое место встают производительность и надежность. Мне кажется, что 15–20% участников Core Working Group (NB: подгруппа Комитета Стандартизации, занимающаяся ключевыми вопросами развития языка) принадлежат к миру высокой производительности и безотказной надежности, то есть такому, которому отлично подходит C++.

Нам не нужно пытаться сделать из C++ конкурента Python, чтобы завлечь людей, не являющихся профессиональными программистами, но являющиеся экспертами в других областях. Если же нужно добиться скорости и надежности, лучше заменить Python на C++. То же самое действует и в обратном порядке: хотите экспериментировать с C++ — не ослабляйте систему типов и не ослабляйте внимание при написании выражений. Я не буду делать со своим кодом все, что мог бы с ним сделать, не зная наверняка, что мне нужно. Мне кажется, C++ не создан для 80–85% программистов. Всегда стоит помнить об изначальной задумке создания языка: этот язык — распределенная система с прямым доступом к железу и немного повышенным уровнем сложности. Если смотреть на вещи в таком ключе, то любая вещь, нацеленная на то, на что нацелен C++, должна обладать высокой надежностью.

Этот мир сильно отличается от того, в котором существует разработчик приложений. JavaScript хорош в решении тех задач, для которых был создан, а у меня есть правило: не говорить ничего плохого о приложениях, взявших свое начало от C++ как, например, движки JavaScript. Это два разных мира, но иногда они пересекаются. Зачастую С++ ложится в основу и дальше дополняется чем-нибудь еще.

О планах по изменению языка

Сергей П.: Есть ли планы по улучшению целостности языка ценой удаления совместимости с си? Например, можно ли избавиться от препроцессора, чтобы сделать C++ прекрасным?

Бьярне: Основная стратегия и, по-моему, единственная рабочая — предоставить превосходящую альтернативу и надеяться, что устаревшие функции потеряют актуальность. Старые функции нельзя удалить из языка, но их можно удалить из собственного кода. Они могут быть, так скажем, перемещены в запас. Вы можете однажды предложить друзьям или поставщикам перестать пользоваться этими функциями, или пусть они инкапсулируют их. Модули инкапсулируют все старье. В модуле у вас может быть программа, замусоренная макросами и файлами включения. Мне, в общем-то, нет никакого дела до этих файлов включения или макросов, если я не вижу их у себя в коде. Так что эта идея очень важна. По-моему, это единственный способ двигаться вперед. То же можно проделать и с отдельными функциями. Мне, например, не нравятся приведения (casts), я редко ими пользуюсь и, если мне нужно использовать их где-то ближе к уровню железа, на программном уровне я инкапсулирую их во что-то, что использует правильные типы и следует правилам.

Сергей Ф.: Не могли бы вы рассказать, почему бы в C++ не сделать семантику перемещения деструктивной?

Бьярне: На этот вопрос будет трудно ответить в рамках обычного разговора. В целом, это не работало и более того, ломало многие работающие вещи, поэтому не может идти речи о развертывании этого в крупных масштабах. Если даже это сработает, придется приложить много дополнительных усилий. Я не могу здесь вдаваться в подробности. Для начала, мне потребуется как минимум доска. К тому же, придется обсудить несколько версий этой идеи… Нет, придется слишком глубоко копать.

Сергей П.: Люди пишут, что компилятор C++ стал очень сложным. Могли бы вы дать совет, как изучать современные компиляторы, как понимать теорию и где набраться практического опыта? Компиляторы становятся все больше.

Бьярне: Компиляторы объемны и сложны. Мне кажется, сегодня все пытаются улучшить свои компиляторы, ничего при этом не сломав, как это обычно бывает. В данный момент и в Microsoft, и в GCC идет работа по модернизации промежуточного представления. Толчком к этому стали модули, которые должны быть представлены и представлены хорошо. Если проделать эту работу на совесть и представлять модули в виде минимального типизированного промежуточного представления, их работа станет намного быстрее. Если же представить это в виде множества битов, придется перекомпилировать это множество при каждом использовании модулей, что сводит на нет все их плюсы. Да, биты инкапсулированы, но они все еще не дают работать быстро.

Мне кажется всем известно, что GCC и Microsoft улучшают их промежуточные представления. Я знаю, что в Microsoft над этим работает мой старый друг, Гэбриэль Дос Рейс. Когда мы были еще профессорами в Техасе, около 10 лет назад, мы создали представление для C++, которое имело минимальный размер и требовало минимума взаимодействий. Мы дали ему название IPR. Это представление и легло в основу внедрения модулей в Microsoft. По-моему, оно становится все популярнее. Оно в разы меньше и быстрее любой альтернативы. Однако чтобы оно работало с существующими компиляторами, придется добавить кое-какие функции, отсутствующие в минималистичном дизайне этого представления, например отладочную информацию.

Я снова отправлю вас на свой сайт, чтобы вы поискали на нем статью, которая называется A Principled, Complete, and Efficient Representation of C++. Название IPR, как вы могли догадаться, придумал я в свойственной мне «креативной манере», полностью оно звучит так: Internal Program Representation. Мне не нравится, когда его называют AST (Abstract Syntax Tree) потому, что это не синтаксис, не абстрактный и не древо. Но люди все называют это таким образом.

О неопределенном поведении

Сергей Ф.: C++ знаменит своим неопределенным поведением. Есть ли у комитета по стандартизации C++ стратегия, которая позволила бы снизить количество случаев неопределенного поведения?

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

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

Списки инициализаторов

Сергей П.: Спрошу о том, что многие хотели бы не видеть в стандарте. Сейчас речь пойдет о новой функции. Во время нескольких конференций C++ Russia мы обсуждали плохую работу списков инициализаторов. Есть ли планы по решению этой проблемы?

Бьярне: Мы пытаемся их немного улучшить. Мне бы хотелось знать больше о том, что люди думают об этих сбоях. Направьте их ко мне, это сильно поможет в работе. Списки инициализаторов работают не совсем так, как я задумывал. Их улучшали, однако, как по мне, улучшения не были улучшениями. Мы постепенно делали их менее склонными к выдаче ошибок, более мощными, более полезными. Думаю, мы продолжим работу в этом направлении. Если у кого-то есть реальные примеры плохой работы, было бы интересно узнать об этом больше: всегда сложно угадывать, что беспокоит людей. Нужно встречаться, обсуждать. Поэтому-то мне и не нравятся видеоконференции. Я не могу поговорить с вами до и после конференции, не могу узнать вашего мнения относительно не оговоренных проблем, не могу попытаться вам помочь, подкинуть какие-нибудь идеи. Живое общение очень важно, я очень скучаю по возможности встречаться с людьми.

Сергей П.: Мы тоже очень хотим проводить живые встречи.

Бьярне: Да, кстати, у вас в России есть комитет по стандартизации C++. Присоединяйтесь к нему. Вы сможете посещать встречи и использовать их как канал передачи ваших идей. Учтите, мне больше нравятся проблемы, чем их решения потому, что зная проблему, я могу разработать решение. А многие, в свою очередь, смотря на свою проблему, хотят увидеть конкретное решение. При этом проблемы у всех разные, сложно решать каждую из них. Нам нужно получить информацию о большом количестве проблем и работать над решением, которое бы подходило для решения множества задач.

Сергей П.: У рабочей группы в России есть сайт stdcpp.ru, который также является форумом, где можно обсудить свою проблему с другими участниками и проголосовать за то, чтобы ее обсудили позже в комитете. У нас в рабочей группе-21 три участника представляют вашу проблему. Если она наберет популярность, они могут помочь вам с подготовкой статьи. Такое уже случалось. В комитете уже прорабатывали предложения от сообщества, например, wide_int, которое поступило через сайт. Кстати, эту идею предложил студент, а не профессиональный разработчик. Позже он стал соавтором статьи. Сейчас этот вопрос обсуждается. Мы активно просим всех участвовать в работе, которая обычно доступна для публичного просмотра. Более того, мы организуем встречи в Москве и приглашаем принять в них участие.

Бьярне: Это великолепно. Однако, я бы хотел попросить вас напоминать людям, что большинство языков программирования умерли. У нас было как минимум 10 000 языков, которые полностью удовлетворяли своих создателей. Они в итоге исчезли. Успех языка программирования не равен победе в конкурсе популярности. Нужно думать о большем сообществе. Нужно понимать, что с вашей проблемой столкнулись и программисты в Калифорнии, Ухани, Бангалоре и других местах. Ваша проблема может быть такой же проблемой и в других сферах применения языка. Более того, многие пишут на C и C++ потому, что это старые языки. Код, написанный 10 лет назад, все еще исполняется. Это дает людям уверенность, что код, который они пишут сегодня, будет исполняться через 10 лет. Многие пользователи, большие компании думают о выживании своего кода. Поэтому я делаю акцент на совместимости. Мы не можем прийти к улучшениям ценой нарушения совместимости. Миллионы сегодня хотят и новых фишек, и избавления от старья, и чтобы код работал.

Инструменты Бьярне

Сергей Ф.: Справедливо. Какими инструментами вы обычно пользуетесь? Вы пишете программы?

Бьярне: Пишу программы каждый день. У меня есть два набора инструментов. У меня два экрана. Один — от компьютера на Linux, иногда я пользуюсь кластером Linux, там GCC, система сборки и прочее. Второй — компьютер на Windows, там у меня Visual Studio и остальная мелочь. Я говорю мелочь, но компьютеры не маленькие — в последнем установлен i7. Я еще пользовался Mac, но мне никак не удавалось продуктивно работать с тремя разными системами, поэтому остался с двумя. Как по мне, пользоваться одной системой очень опасно для программиста и особенно дизайнера языка. Вам кажется, что эти инструменты — отличный выбор, с ними все в порядке и все должны ими пользоваться. Опасный подход.

Сергей Ф.: Если у вас есть кластер на Linux, почему вы не используете систему непрерывной интеграции, чтобы пользоваться разными наборами инструментов?

Бьярне: Может, я и использую, это корпоративные машины. Кстати, компьютер на Windows может взаимодействовать с миром без каких-либо проблем с безопасностью. Я работаю в банке. Многие хотели бы взломать банк, в конце концов, там лежат деньги, поэтому о безопасности нужно думать. Если же мне взломают персональный компьютер, я расстроюсь, но миру это не нанесет серьезного ущерба.

Есть еще одна машина, на которой я могу запустить любую систему, могу загружать в нее. На ней запускается компилятор от Microsoft, Clang и GCC. Ладно, не буду продолжать. Хотелось бы еще машину на Intel и еще парочку, но поддерживать их в работе — все равно что устроиться на полную ставку. У меня помимо этого есть работа, преподавание и C++.

Сергей П.: Вопрос, наверное, заключался немного в другом. Пользуетесь ли вы, например, AddressSanitizer, статическим анализатором и остальными инструментами? Как разработчик ПО, пользуетесь ли вы отладчиком? Проводите ли вы отладку своего ПО? Используете ли вы GDB или аналог, или Godbolt?

Бьярне: Да, я часто использую Godbolt. Еще я использую статический анализатор от Microsoft. Он работает по Core Guidelines, я не использую clang-tidy, поскольку не рассчитан на работу в области моих интересов. Отладчиками я пользуюсь нечасто. Есть cppreference, этого достаточно.

Последние проекты

Сергей П.: Если не секрет, не могли бы вы рассказать, над чем вы работаете в последние 2–3 года?

Бьярне: Моя работа видна по моим предложениям, вносимым в комитет по стандартизации — я сильно занят подготовкой C++20. Вся работа излагается довольно подробно. Модули, сопрограммы, концепции. Также я работал с заказчиками, но там не сложилось. Кроме того, я писал статьи об истории развития языка в последние 15 лет, о направлении его развития. Также я постоянно работаю над ключевыми рекомендациями. Участвую во встречах с представителями Microsoft, Facebook, Red Hat.

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

Уже совсем скоро, 11-14 ноября, в онлайне пройдёт новая C++ Russia. В её программе тоже есть два интервью: с Мэттом Годболтом (вы же наверняка пользуетесь golbolt.org?) и с Тайтусом Уинтерсом (о том, стоит ли сломать обратную совместимость C++ во имя производительности). А кроме интервью, будут доклады на самые разные темы: современный CMake, SIMD-инструкции, лямбды… В общем, если это интервью было вам интересным — на новой конференции наверняка тоже найдёте много интересного.

Бьерн Страуструп, программист и информатик, автор языка программирования C++

Бьёрн Страуструп родился 30 декабря 1950 года. Известен как датский программист, разработчик языка программирования C++.

Биография

Б. Страуструп родился в г. Орхус (Дания).

Обучался в Орхусском университете на отделении информатики, который закончил в 1975 году и получил степень магистра. Далее продолжил учебу в Кембриджском университете и в 1979 году защитил диссертацию и получил степень доктора философии по информатике, конструируя распределённую систему в компьютерной лаборатории университета.

Б. Страуструп является членом колледжа имени Черчилля.

Страуструп в 1979 году вместе с семьей переезжает в Нью-Джерси и начинает работать в компьютерном научно-исследовательском центре Bell Labs (Bell Telephone Laboratories).

Замечание 1

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

Разработка С++

На протяжении 1980–1983 годов Б. Страуструпом был спроектирован язык программирования С++, который он реализовал первым.

На сегодняшний день С++ один из самых широко используемых языков программирования, поддерживающих технологию объектно-ориентированного программирования.

Б. Страуструп стал первым в области использования объектно-ориентированной парадигмы и общей техники при создании программных приложений, в которых приоритетным свойством является эффективность. Среди таких приложений системы для научных вычислений, прикладные системы, пользовательские интерфейсы, графика, симуляторы.

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

Замечание 2

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

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

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

Награды

В 2005 году Бьерна наградило американское научно-исследовательское сообщество как первого компьютерного учёного.

2005 год – награжден научной наградой общества Sigma Xi – Премией Уильяма Проктера за научные достижения.

За начало коммерциализации и разработки объектно-ориентированной технологии написания программ и за большие изменения, которые внесены в индустрию и бизнес Бьерн также награжден компьютерным сообществом IEEE.

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

К тому же, Б. Страуструп – член Техасской академии науки, инженерии и медицины. Журнал «Fortune magazine» назвал Бьёрна Страуструпа одним из «двенадцати лучших молодых американских учёных».

Замечание 3

В 2013 году Страуструп признан почетным доктором Национального исследовательского университета ИТМО (информационных технологий, механики и оптики).

Автор: Страуструп Бьярне — 1 книг.Главная страница.

КОММЕНТАРИИ 1008

Брат
Николай Дронт

Совершенно с Вами согласен! В РСФСР! А в УССР (где учился я) с 5-го класса (математика). И в 6-м (два экзамена), и в 7-м (2 шт.), и в 8-м (4 шт.), и в 9-м (2 шт) и, естественно, выпускные. Закончил школу в 1980 году.

Алексей Владимирович Машталов   27-03-2021 в 15:24   #189796 Брат
Николай Дронт

Полная ерунда! Переводных экзаменов в 70-е годы в школах не было! Сдавали 4 экзамена после 8 класса (аналог ОГЭ) и 8 выпускных после 10-го (аналог ЕГЭ). Сам сдавал, так что знаю.

Александр   25-03-2021 в 20:58   #189794 Верность
Константин Петрович Локотков

Здравствуйте,ищу книгу Верность, Виктор Сокол летчик, девушка Айна, ВОВ,так всё красиво описывается, как Виктор воюет а девушка ждёт. Не знаю кто автор и как найти, помогите найти выпишу куплю. Спасибо

Александр   22-03-2021 в 15:41   #189789 Западная война
Михаил Алексеевич Ланцов

Серия понравилась. Вот настоящий борец за свою страну!!! Не то, что нынешнее….только б украсть… Классно описан образ ГГ, НО, главное какую историческую обработку, изучение провел автор! Замечально! Таких бы личностей да сейчас, гладишь и возродилась бы Россия былой мощью!. Советую прочитать, хотя б ради тех исторических ссылок,что представил автор.

Георгий   22-03-2021 в 15:29   #189788 Зов Крови (СИ)
Татьяна Ларина

Скажите есть ли продолжение книги? Очень его ищу!!! Книга интересна, захватывающим сюжетом, и своеобразными героями. Как ужиться вместе оборотня и ведьмам, кто в этом мире друг и враг, и сто делать если ты вдруг оказалась ведьмой, все тут, в этой книге. НО!!! То ли автор не знает, что дальше писать, то ли с ним что-то случилось плохое и поэтому книга обрывается на самом интересном. Очень жаль, если не будет продолжения!!!!

Ольга   20-03-2021 в 22:52   #189786 Брат
Николай Дронт

Исторический анахронизм в повести «БРАТ»: переводные экзамены в советских школах отменили гораздо позже — где-то ближе к 2000 году. Причин банальная — эпидемия гриппа. В 70-х они были устные или письменные в каждом классе — математика геометрия , англ. яз, география и т.д.

DeToja   20-03-2021 в 11:09   #189785 Казнить!
Александр Петрович Бочков

Не антисемитизм, а идиотизм!

А по признакам психического нездоровья отказывать пейсателям нельзя — это не толерантно!

Каждый идиот имеет право изложить свой рецепт на тему «Як нам обустроить Россию, шобы уси москали поздыхали!»,

«Жиды виноваты в том, что Архангельская область — край вечнозелёных помидоров»

и «Как бы я осчастливил всё человечество, если бы знал, где у него кнопка!»

Скив   17-03-2021 в 01:55   #189783 Возвращение в Тооредаан (новый вариант) (СИ)
Егор Дмитриевич Чекрыгин

Замечательные серии приключений! Напрасно автор называет это зудом графоманства. Манера автора встречается с восторгом множеством поклоников его литературного творчества. Люблю длинные продолжения! Шесть серий про Дебила читаются взахлеб! Как прописаны характеры! Какое проникновение в древнюю психологию! Читаю у Ксенофонта в Анабазисе один из воинов на празднике исполняет ритуальный тотемный танец своего племени! Как близко сошлись тогда родовое общество и представители самого продвинутого, на то время, Афинского полиса. Прошлое рядом с нами! Оно тянется из седой древности и даже сейчас может быть где -то совсем рядом.

Александр   16-03-2021 в 22:04   #189782

ВСЕ КОММЕНТАРИИ

Почему люди думают, что единственным человеком, создавшим C++, был Бьярне Страуструп?

В настоящее время я читаю книгу Страуструпа «Design и эволюцию C++», и оказывается, что он не был тем, кто разработал C++.

Когда я слышу, как кто-то говорит, что «Bjarne Страуструп разработал C++ blah-blah-blah»,, я всегда чувствую, что это очень несправедливо по отношению к этим парням, которые работали с BS — я имею в виду Джонатана Шопиро, Эндрю Кенига, Стэна Липпмана, Стефана Дьюхерста и других. Почему это происходит именно так? Даже Википедия не упоминает его команду — только его самого, о чем это он?

EDIT :

Когда люди говорят C#,, они не имеют в виду Андерса Хейлсберга ONLY, была команда разработчиков, работающая как над C#, так и над .NET фреймворками. Может быть, это потому, что C++ не принадлежит ни одной компании-гиганту программного обеспечения, как Java к Oracle или C# к Microsoft?

c++

programming-languages

Поделиться

Источник


chester89    

08 сентября 2009 в 09:57

6 ответов




23

C++ прошел через два основных этапа своей эволюции.

Первые дни Бьярне Страуструп создавал язык. Он, очевидно, заимствовал идеи у других и добивался обратной связи от нескольких умных языковых дизайнеров, и, без сомнения, у него была небольшая команда, работающая под его руководством, но язык был в основном его детищем.

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

Вторая фаза находится там, где она находится сейчас: стандарт ISO. Они поддерживаются комитетами, и в комитете C++ Страуструп является лишь одним из многих участвующих членов. Его слова все еще могут иметь немного больший вес из-за его истории с языком, но в основном он больше не имеет никакого особого статуса. Он просто вкладчик, как и все остальные в комитете.

В тот момент, когда язык был стандартизирован, он перестал быть «his» языком. После этого он и многие другие просто помогали ISO поддерживать и развивать язык.

По крайней мере, я так себе это представляю.

Поделиться


jalf    

08 сентября 2009 в 10:24



6

Одна из причин, почему люди могут подумать, что это сделал Мистер Страуструп, заключается в том, что он сам говорит об этом в интернете:

Я (Бьярне Страуструп) являюсь разработчиком
и оригинальным разработчиком C++.

Я не читал книгу, которую вы упомянули; можете ли вы добавить цитаты к вопросу, которые показывают, как эволюция языка и кто сделал то, что объясняется в нем? Кажется странным, что мистер Страуструп утверждает одно в интернете, очень публично, а другое в книге.

Поделиться


unwind    

08 сентября 2009 в 10:02



3

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

Одна из причин этого заключается в том, что легче запомнить одно имя, чем два десятка или сотни.

Поделиться


sharptooth    

08 сентября 2009 в 10:03


  • Ошибается ли Бьярне в этом примере ADL, или у меня есть ошибка компилятора?

    Я читаю язык программирования C++, 4-е издание ( Бьярне Страуструп ) около argument-dependent-lookup . Вот цитата (26.3.6, сверхагрессивный ADL): Поиск, зависящий от аргумента (часто называемый ADL), очень полезен, чтобы избежать многословия (14.2.4). Например: #include <iostream> int main()…

  • Ошибка Бьярне в презентации C++11?

    У меня есть страница со слайда ( http:/ / www.ii.uni.wroc.pl / ~nivelle/C++11_design_Wroclaw.pdf ), который представил Бьярн Страуструп. Проблема в том, что этот код не компилируется, но это происходит: using namespace std; template<typename T> class Vector : vector<T> { using…



1

Это примерно то же самое, что с PHP и Расмусом Лердорфом. Он был отцом этой идеи, но позже к нему присоединились другие люди.

Поделиться


Brayn    

08 сентября 2009 в 10:03



0

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

Поделиться


codymanix    

08 сентября 2009 в 10:36



0

То, что вы чувствуете, что это несправедливо, — это иррациональная реакция. Рискуя огорчить вас еще больше, я без труда соглашусь, что Линус Торвальдс создал Linux или что Джим Деллигатти изобрел Биг-Мак. Причина, по которой я могу это сделать, заключается в том, что я не страдаю от заблуждения, что большинство не всех продуктов или изобретений являются результатом синтеза идей и включают мириады анонимных источников, прежде чем воплотиться в жизнь.

Поделиться


user957965    

30 сентября 2011 в 21:54


Похожие вопросы:

Что люди думают о ископаемых ДВК?

ископаемое http://www.fossil-scm.org Я нашел это недавно и начал использовать его для своих домашних проектов. Я хочу услышать, что другие люди думают об этом VCS. Чего мне не хватает, так это…

Почему у C++ нет сборщика мусора?

Я задаю этот вопрос не из-за достоинств сбора мусора в первую очередь. Моя главная причина спросить об этом заключается в том, что я знаю, что Бьярне Страуструп сказал, что C++ будет иметь сборщик…

JavaFX — что думают люди?

Возможный Дубликат : Каковы ваши чувства по поводу JavaFX? Привет ребята, В данный момент я изучаю Java, можно сказать, что на данный момент я нахожусь на среднем уровне. Я наткнулся на JavaFX,…

Почему Страуструп в «The C++ Programming Language 3rd Edition (online)» определяет функцию sqrt?

Бьярне Страуструп в 3-м издании ( онлайн ) своей книги The C++ Programming Language Глава 2, Страница 23 (pdf страница 34), в парадигме фрагмента, определяет функцию sqrt . Почему он просто не…

Как работает этот пример в языке программирования C++ Бьярне Страуструпа?

Я читаю язык программирования C++, 4-е издание ( Бьярне Страуструп ) о ссылках . У него есть следующий пример кода: void f (const vector<double>& v){ double d1 = v[1]; v[2] = 7;…

Ошибается ли Бьярне в этом примере ADL, или у меня есть ошибка компилятора?

Я читаю язык программирования C++, 4-е издание ( Бьярне Страуструп ) около argument-dependent-lookup . Вот цитата (26.3.6, сверхагрессивный ADL): Поиск, зависящий от аргумента (часто называемый…

Ошибка Бьярне в презентации C++11?

У меня есть страница со слайда ( http:/ / www.ii.uni.wroc.pl / ~nivelle/C++11_design_Wroclaw.pdf ), который представил Бьярн Страуструп. Проблема в том, что этот код не компилируется, но это…

что не так с пользовательским распределителем в C++?

Бьярне Страуструп в своей книге Язык программирования C++ говорит, что: Совет: подумайте дважды, прежде чем писать свой собственный распределитель Что хочет сказать Бьярне, давая вышеприведенный…

Бьярне Страуструп глава 10.5 пример

Речь идет о примере из раздела 10.5 книги Бьярне Страуструпа Principles and Practices using C++. Насколько я понимаю, он должен предложить пользователю ввести имя создаваемого файла (поэтому я…

Бьярне Страуструп говорит, что мы должны избегать связанных списков

Я видел это видео на YouTube: https://www.youtube.com/watch?v=YQs6IC-vgmo, в котором Бьярне говорит, что лучше использовать векторы, а не связанные списки. Я не в состоянии понять все это целиком,…

Бьярне Страуструп — Программирование. Принципы и практика с использованием C++ (2016) pdf / Consense Library /

Основные темы книги «Программирование: принципы и практика с использованием C++, второе издание»:
— Подготовка к созданию реальных программ. Автор книги предполагает, что читатели в конце концов начнут писать нетривиальные программы либо в качестве профессиональных разработчиков программного обеспечения, либо в качестве программистов, работающих в других областях науки и техники.
— Упор на основные концепции и методы. Основные концепции и методы программирования в книге излагаются глубже, чем это принято в традиционных вводных курсах. Этот подход дает основательный фундамент для разработки полезных, правильных, понятных и эффективных программ.
— Программирование на современном языке С++ (C++11 и C++14). Книга представляет собой введение в программирование, включая объектно-ориентированное и обобщенное программирование. Одновременно она представляет собой введение в язык С++, один из широко применяющихся языков программирования в современном мире. В книге описаны современные методы программирования на С++, включая стандартную библиотеку и возможности C++11 и C++14, позволяющие упростить программирование.
— Для начинающих программистов и всех, кто хочет научиться программировать. Книга предназначена в основном для людей, никогда ранее не программировавших, и опробована на более чем тысяче студентов университета. Однако и опытные программисты, и студенты, уже изучившие основы программирования, найдут в книге много полезной информации, которая позволит им перейти на еще более высокий уровень мастерства.
— Широкий охват тем. Первая половина книги охватывает широкий спектр основных понятий, методов проектирования и программирования, свойств языка С++ и его библиотек. Это позволит читателям писать программы, выполняющие ввод и вывод данных, вычисления и построение простых графических изображений. Во второй половине рассматриваются более специализированные темы (такие как обработка текста, тестирование и язык C). В книге содержится много справочного материала. Исходные тексты программ и иные материалы читатели могут найти на веб-сайте автора.

Бьярне Страуструп — разработчик языка программирования C++ и первой его реализации; он также является автором известной книги The С++ Programming Language. Сейчас он работает управляющим директором в технологическом отделе Morgan Stanley; приглашенным профессором в Колумбийском университете и является почетным профессором Университете Техаса. Страуструп — член Национальной академии технических наук США (U.S. National Academy of Engineering). До перехода на академическую работу он много лет работал в исследовательском центре AT&T Bell Labs. Он также является одним из членов-учредителей международного комитета по стандартизации языка С++ (ISO С++).

Все представленные в библиотеке материалы взяты из открытых источников и являются собственностью соответствующих правообладателей и/или авторов. Скачивая их, Вы соглашаетесь с тем, что получаете их для личного ознакомления.

Страуструп, Бьерн — Язык программирования C++ /


Поиск по определенным полям

Чтобы сузить результаты поисковой выдачи, можно уточнить запрос, указав поля, по которым производить поиск. Список полей представлен выше. Например:

author:иванов

Можно искать по нескольким полям одновременно:

author:иванов title:исследование

Логически операторы

По умолчанию используется оператор AND.
Оператор AND означает, что документ должен соответствовать всем элементам в группе:

исследование разработка

author:иванов title:разработка

оператор OR означает, что документ должен соответствовать одному из значений в группе:

исследование OR разработка

author:иванов OR title:разработка

оператор NOT исключает документы, содержащие данный элемент:

исследование NOT разработка

author:иванов NOT title:разработка

Тип поиска

При написании запроса можно указывать способ, по которому фраза будет искаться. Поддерживается четыре метода: поиск с учетом морфологии, без морфологии, поиск префикса, поиск фразы.

По-умолчанию, поиск производится с учетом морфологии.

Для поиска без морфологии, перед словами в фразе достаточно поставить знак «доллар»:

$исследование $развития

Для поиска префикса нужно поставить звездочку после запроса:

исследование*

Для поиска фразы нужно заключить запрос в двойные кавычки:

«исследование и разработка«

Поиск по синонимам

Для включения в результаты поиска синонимов слова нужно поставить решётку «#» перед словом или перед выражением в скобках.

В применении к одному слову для него будет найдено до трёх синонимов.

В применении к выражению в скобках к каждому слову будет добавлен синоним, если он был найден.

Не сочетается с поиском без морфологии, поиском по префиксу или поиском по фразе.

#исследование

Группировка

Для того, чтобы сгруппировать поисковые фразы нужно использовать скобки.4 разработка

По умолчанию, уровень равен 1. Допустимые значения — положительное вещественное число.

Поиск в интервале

Для указания интервала, в котором должно находиться значение какого-то поля, следует указать в скобках граничные значения, разделенные оператором TO.
Будет произведена лексикографическая сортировка.

author:[Иванов TO Петров]

Будут возвращены результаты с автором, начиная от Иванова и заканчивая Петровым, Иванов и Петров будут включены в результат.

author:{Иванов TO Петров}

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

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

Бьёрн Страуструп: «Ждите сюрпризов!»::Журнал СА 12.2010

Рубрика:

Гость номера / 
Гость номера

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+

Бьёрн Страуструп:
«Ждите сюрпризов!»

На вопросы «Системного администратора» отвечает легендарный автор самого широко используемого языка программирования С++

Бьёрн Страуструп (слева) и Кирилл Сухов

Бьёрн Страуструп, Бьярне Строуструп (дат. Bjarne Stroustrup), родился 11 июня 1950 года (по другим сведениям, 30 декабря) в г. Орхус, Дания. Окончил Орхусский университет (1975), отделение компьютерных наук, получив степень магистра. Защитив диссертацию по информатике в Кембридже (1979), стал доктором философии. До 2002 года возглавлял отдел исследований в области крупномасштабного программирования в компании AT&T (Computer Science Research Center of Bell Telephone Laboratories). Ныне профессор Техасского университета, А&М. Страуструп стал пионером в области использования объектно-ориентированной и общей техник в области создания программных приложений, где эффективность является приоритетным свойством. Бьёрн Страуструп избран членом Национальной Академии Инженерии в США (National Academy of Engineering) в 2004 году за «создание языка С++». Как первый компьютерный ученый, он был награжден американским научно-исследовательским сообществом в 2005 году (William Procter Prize for Scientific Achievement from Sigma Xi). Он также получил награду компьютерного сообщества IEEE «за начало разработки и коммерциализации объектно-ориентированной технологии создания программ и за большие изменения, внесенные в бизнес и индустрию». Кроме того, Страуструп является членом Техасской Академии Медицины, Инженерии и Науки (Texas Academy of Medicine, Engineering, and Science). Книга Страуструпа «Язык программирования C++» – одна из наиболее читаемых в своей области, переведена на 19 языков. В дополнение к своим пяти книгам, Страуструп опубликовал более сотни академических и других популярных статей.

В Москве, с 11 по 15 октября 2010 года, прошла крупнейшая в Центральной и Восточной Европе конференция «Разработка ПО 2010». Организаторами мероприятия выступили: UNOVA Media, TEKAMA, INTSPEI, и ГУ-ВШЭ. За три дня мероприятия было немало интересных событий, но одно из них стало эпохальным – организаторам удалось пригласить самого Бьёрна Страуструпа – легендарного автора языка C++, множества книг (включая каноническую «Язык программирования C++») и научных работ.

Когда вы начали интересоваться программированием?

Впервые я познакомился с программированием на первом курсе отделения компьютерных наук Орхусского университета и сразу же был им очарован. Мой первый язык программирования был Алгол 60, но вскоре я попробовал многие другие.

Каким вы видели будущее языка, когда создавали C++ в начале 80-х годов? Предвидели ли его такое широкое распространение?

Я разрабатывал и реализовывал C++ в первую очередь для себя, своих друзей и коллег. Понятно, что я не ожидал такого всемирного и долгого успеха языка. В конце концов, у меня не было никаких торговых предложений и не было бизнес-плана. Я просто хотел создать широко применимый инструмент с непревзойденной производительностью. Как оказалось, многие программисты нуждались в подобном инструменте.

Каким вы сейчас видите будущее C++? Когда ожидаете новый стандарт языка?

Недавно я вернулся с заседания ISO C++ по стандартам. Мы на пути к окончательному техническому решению в марте 2011-го, и предположительно, пройдя все бюрократические процедуры, стандарт может быть формально принят позднее в том же году.

Всегда трудно предсказать будущее, но C++, кажется, для своих пользователей и сообщества пользователей является подходящим и всеобъемлющим инструментом.

Стандарт C++0х обеспечит повышение производительности, упрощая разработку качественных систем.

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

Что будет после стандарта C++0х? В каком направлении станет развиваться язык?

Сейчас основное внимание будет уделяться реализации C++0х и развитию стилей программирования, использующих множество новых функций и компонентов стандартной библиотеки. Мы уже на этом пути: многие функции доступны в текущих компиляторах.

Не хочу гадать о направлениях развития C++ после C++0х, но кое-что будет сделано. Прежде всего хочу, чтобы было больше стандартных библиотек, и они стали лучше. Я бы предпочел увидеть несколько значительных улучшений, а не множество мелких изменений.

Вы один из тех людей, кто сделал информационный мир таким, какой он нынче. Можете ли представить, что будет дальше? Чего следует ожидать? Какие технологии будут востребованы? Что изменится в ИТ-мире?

Ждите сюрпризов! ИТ – это область, которая продолжает обновляться. Я надеюсь увидеть усовершенствования в работе с параллелизмом.

Язык C++0x оказывает портативную и типизированную поддержку параллелизма для традиционных систем программирования. Надеюсь, что увижу несколько более высокоуровневых и изящных моделей параллельного программирования.

Интерпретируемый язык и Just-n-time-компиляция получили широкое распространение, в том числе в тех областях, где C++ полностью доминировал. Что вы думаете об этой тенденции? Как к ней относитесь?

Думаю, что Just-n-time – это, в первую очередь маркетинг. C++ теперь реже используется в сферах, где «программирование» является прежде всего предметом стандартных услуг. Это, вероятно, хорошо. С другой стороны, востребованность C++ растет в тех областях, где важны производительность и требования к оборудованию.

Все знают вас как автора языка С++, но вы также автор компилятора для этого языка. Современные компиляторы и среды разработки: что из них вы бы посоветовали?

Не буду рекомендовать реализацию C++ или платформы; среди существующих есть много хороших, охватывающих широкий спектр потребностей. Просто убедитесь, что используемое вами, соответствует стандартам, а затем попытайтесь применить C++ в достаточно современном стиле. Помните, что писать в стиле С на С++ неоптимально – так пишется примитивный объектно-ориентированный код на C++.

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

Что вы думаете о растущем интересе к функциональным языкам программирования и к функциональному программированию вообще?

Функциональные языки после почти 30 лет развития по-прежнему остаются объектом интересных и вдохновляющих экспериментов. Я не могу назвать ни одного крупного приложения, написанного в основном на чисто функциональном языке. Мы стараемся изучать идеи, возникающие у функционального сообществ, и с осторожностью применять эти уроки в коде C++.

Что вы бы делали, если бы учились в университете сегодня? Какие технологии были бы наиболее интересны для вас?

Не знаю. Я попал в ИТ, потому что ошибочно считал, что компьютерные науки – отрасль прикладной математики. Подозреваю, что если бы я начинал учиться сегодня, то обратил бы внимание на то, что выглядело бы интересным и важным. Например, пересечение вычислительных технологий и биологии кажется мне очень интересным…

Однако не думаю, что как молодой человек я бы сосредоточился на «технологии». Я бы обратил внимание (как это сделал) на науки, которые имеют потенциальное влияние с помощью технологий.

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

Русский ученый Александр Степанов внес большой вклад в развитие C++ (STL). Работали ли вы вместе с ним? Как вы оцениваете его труды?

Я знаю Александра около 20 лет, и мы работали вместе. Я горжусь тем, что внес посильную лепту в его последнюю книгу «Элементы программирования».

Думаю, что STL была самым важным дополнением к C++, когда мы сделали стандарт C++98 ISO.

Бьёрн Страуструп вне стандартов и компиляторов C++? Какой он? Как вы обычно проводите свободное время? У вас есть какие-нибудь хобби?

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

Недавно язык С++ отметил двадцать пятую годовщину как коммерческий продукт. Я бы хотел от имени читателей нашего журнала поздравить вас!

Спасибо большое. Немного языков может отпраздновать свое 25-летие с миллионами программистов. Было бы неплохо, если бы мы могли отметить эту годовщину, выпуская C++0х в 2010 году. Но я очень надеюсь на официальное утверждение и реализацию его хотя бы в новом году. Вся техническая работа уже почти сделана.

Кирилл Сухов,
перевод Романа Сухова

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+

Страуструп: биографические данные

Страуструп: биографические данные

Морган Стенли
|
Колумбийский университет
|
Черчилль-колледж, Кембридж

дом
|
C ++
|
Часто задаваемые вопросы
|
технический FAQ
|
публикации
|
Документы WG21
|
TC ++ PL
|
Тур ++
|
Программирование
|
D&E
|
биография
|
интервью
|
видео
|
цитаты
|
Приложения
|
методические рекомендации
|
составители

Изменено 1 января 2021 г.

Биография:

Бьярне Страуструп
является разработчиком и оригинальным исполнителем
C ++
и автор

Его исследовательские интересы включают распределенные системы, дизайн, методы программирования,
инструменты разработки программного обеспечения и языки программирования.Он активно участвует в стандартизации C ++ ANSI / ISO.

Д-р Страуструп — технический сотрудник и управляющий директор технологического подразделения компании
Морган Стенли
в Нью-Йорке и
Приглашенный профессор компьютерных наук в
Колумбийский университет.

Он получил множество наград:

  • 2019: Почетный доктор Университета Карлоса III
    в Мадриде, Испания.
    Церемония Doctor Causa Honoris.Профессор Ж-Даниэль Гарсиа-Санчес вводит меня (Laudatio): 40:54.
    Моя речь (Lectio Magistralis): 51:00.

  • 2018:
    Медаль и премия Джона Скотта за наследие
    от Института Франклина и городского совета Филадельфии;
    2-я старейшая награда США за научные достижения, присуждаемая с 1822 года.
    мужчинам и женщинам, чьи изобретения значительно улучшили «комфорт, благополучие и счастье человечества». .
    Известные получатели включают
    Мадам Кюри, Томас Эдисон, братья Райт, Никола Тесла, Джонас Солк, Александр Флеминг, Чарльз С.Дрейпер и Ричард Э. Смолли.

  • 2018:
    Премия Computer Pioneer Award
    из
    Компьютерное общество IEEE
    За привнесение объектно-ориентированного программирования и универсального программирования в широкое распространение с его
    разработка и реализация языка программирования C ++
    .
    Премия отмечает вклад, имеющий непреходящую ценность; он выдается самое раннее через 15 лет после признания работы.
    Известные получатели включают
    Джон Бэкус, Боб Бартон, Тони Хоар, Дэвид Кук, Питер Наур, Морис Уилкс и Никлаус Вирт.Также:
    Пресс-релиз IEEE CS.

  • 2018:
    Приз Чарльза Старка Дрейпера
    из
    Национальная инженерная академия США
    для концептуализации и разработки языка программирования C ++. .
    Это высшая награда NEA и одна из высших наград в мире для инженера.
    Известные получатели включают
    изобретатели чипа, реактивного двигателя, спутников связи, волоконной оптики, GPS, CCD (цифровых фотоаппаратов),
    а также несколько компьютерных ученых, в том числе: Джон Бэкус, Винт Серф и Тим Бернерс-Ли.Также: пресс-релиз Draper Labs, вкл. потоковое видео с мероприятия.
    Моя благодарственная речь начинается в 14:30.
    Также: энциклопедическая статья «Британника».
    Также: моя благодарственная речь от The Bridge.

  • 2017:
    Медаль Фарадея
    из
    ИЭПП (Институт инженерных технологий)
    за значительный вклад в историю вычислительной техники, в частности за создание языка программирования C ++ .
    Медаль Фарадея — высшая награда IET.Известные получатели включают
    J.J. Томсон, С.А.Р. Хоар, Дональд Кнут и Морис Уилкс.
    Институт инженерных технологий (ИЭПП)
    является одним из старейших и крупнейших инженерных институтов в мире, насчитывающим более 168 000 членов в 150 странах мира.

  • 2017:
    Избран почетным членом
    Черчилль-колледж,
    Кембридж.

  • 2015:
    Сотрудник Музея компьютерной истории
    «За изобретение языка программирования C ++» (2015).
  • 2015:
    Старшая премия Даля-Найгаарда от
    Европейская организация объектно-ориентированных технологий.

  • 2013:
    Зал славы электронного дизайна.

  • 2013: Почетный доктор компьютерных наук от
    Национальный исследовательский университет ИТМО,
    Санкт-Петербург, Россия.
    ИТМО — ведущий российский технический университет, наиболее известный благодаря пятикратной победе в Международном студенческом чемпионате по программированию (ACM ICPC) — больше, чем любой другой университет мира.Среди других почетных докторов — Тони Хоар (2013),
    Джон Хопкрофт (2009) и
    Никлаус Вирт (2005).

  • 2013: Премия Golden Abacus от
    Ипсилон Пи Эпсилон
    — награда вручается лицу, получившему профессиональную известность и
    который на протяжении нескольких лет оказывал всестороннюю поддержку и руководил студенческой деятельностью в области вычислительной техники.
    и информационные дисциплины
    .

  • 2010:
    Почетный профессор языков объектно-ориентированного программирования,
    Департамент компьютерных наук,
    Орхусский университет.
  • 2010:
    В
    Орхусский университет
    Rigmor og Carl Holst-Knudsens Videnskapspris.
    Старейшая и самая престижная награда университета за вклад в науку человека, связанного с университетом.

  • 2008:
    Премия доктора Добба за выдающиеся достижения в области программирования.

  • 2005 год:
    Приз Уильяма Проктера за научные достижения
    от Sigma Xi (научно-исследовательское общество)
    как первый в истории компьютерный ученый.
  • 2005:
    Сотрудник IEEE.

  • 2004: Член
    Техасская академия медицины, инженерии и науки.

  • 2004: Избран членом Национальной инженерной академии.
    для создания языка программирования C ++ .

  • 2004: Компьютерное общество IEEE
    Премия компьютерного предпринимателя
    за новаторство в разработке и коммерциализации
    промышленные, объектно-ориентированные технологии программирования и
    они способствовали глубоким изменениям в бизнесе и промышленности
    .
  • 2002-2006:
    Почетный профессор Сианьского университета Цзяо Тонг.

  • 1996: сотрудник AT&T.

  • 1995: Журнал BYTE назвал его одним из «20 самых влиятельных людей в компьютерной индустрии за последние 20 лет».

  • 1995: «Дизайн и эволюция C ++» получил премию доктора Добба «За продуктивность» за помощь программистам в улучшении их кода.

  • 1993: научный сотрудник AT&T Bell Laboratories.
  • 1993 год.
    Премия ACM Грейс Мюррей Хоппер
    за его раннюю работу, заложившую основы программирования на C ++.
    язык. на основе этих основ и продолжающейся работы доктора Страуструпа
    усилия, C ++ стал одним из самых влиятельных программистов
    языков в истории вычислительной техники
    .
    Премия GMH присуждается за значительные достижения в возрасте до 35 лет.
    Многие из
    Получатели GMH,
    такие как Дон Кнут, Стив Возняк и Роберт Меткалф, продолжали делать и другие великие дела.
  • 1993:
    Сотрудник ACM.

  • 1990:
    Журнал Fortune назвал его одним из «двенадцати лучших молодых ученых Америки».
    Среди более ранних получателей — Клод Шеннон.

  • 1990: «Справочное руководство по C ++ с комментариями» получило награду доктора Добба «Jolt Cola» за выдающиеся достижения в области технической документации.

Техасский университет A&M награждает:

  • 2011:
    Заслуженный профессор университета (почетное звание, присвоено «на вечность»).
  • 2010:
    Повышение до заслуженного профессора (высшее ученое звание вуза).
  • 2009:
    Премия Ассоциации бывших студентов за выдающиеся достижения (университетский уровень) в области исследований.
  • 2008:
    Научный сотрудник TEES.
  • 2004:
    Награда почетного профессора техасского отделения A&M IEEE.

Родился в Орхусе, Дания в 1950 году.
Кандидат наук. (Математика и информатика), 1975 г.,
Орхусский университет
Дания.Кандидат наук. (Компьютерные науки) 1979,
Кембриджский университет, Англия.

Его неисследовательские интересы включают:

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


Биография из одного абзаца:

Бьярн Страуструп — разработчик и первоначальный разработчик C ++, а также автор книг «Язык программирования C ++» (четвертое издание), «Путешествие по C ++» (второе издание), «Программирование: принципы и практика с использованием C ++» (второе издание) и многих популярных и академические публикации.Д-р Страуструп — технический сотрудник и управляющий директор технологического подразделения Morgan Stanley в Нью-Йорке, а также приглашенный профессор Колумбийского университета.
Он является членом Национальной инженерной академии США и научным сотрудником IEEE, ACM и CHM.
Он получил премию Чарльза Старка Дрейпера в 2018 году, премию Computer Pioneer Award 2018 от IEEE Computer Society и медаль Фарадея IET 2017 года.
Его исследовательские интересы включают распределенные системы, дизайн, методы программирования, инструменты разработки программного обеспечения и языки программирования.Он активно участвует в стандартизации C ++ ISO. Он имеет степень магистра математики Орхусского университета, где он является почетным профессором, и степень доктора компьютерных наук Кембриджского университета, где он является почетным членом колледжа Черчилля.
Персональный сайт: www.Stroustrup.com.


Биография для людей, желающих поподробнее:

Бьярн Страуструп разработал и реализовал C ++.
C ++ стал одним из наиболее широко используемых языков программирования, сделав методы абстракции доступными и управляемыми для массового потребителя.
проекты.Используя C ++ в качестве инструмента, Страуструп первым применил
объектно-ориентированные и общие методы программирования в прикладных областях
где эффективность — это премия; примеры включают общее системное программирование,
переключение, моделирование, графика, пользовательские интерфейсы, встроенные системы, финансовые системы, AI / ML, игры,
и научные вычисления.
Около двух десятилетий C ++ был среди
наиболее широко используемый
языки программирования.
Опрос, проведенный осенью 2015 года, оценил, что сообщество пользователей C ++ включает 4 человека.4 миллиона программистов; теперь, кажется, есть еще кое-что.
Влияние C ++ и идей, которые он популяризировал
отчетливо видны далеко за пределами сообщества C ++. Такие языки, как C, C #, Java,
и Fortran теперь предоставляют функции, впервые предназначенные для массового использования в C ++.
В последнее время занимается
проект
придать смысл «современному C ++» как
полностью типобезопасный и ресурсосберегающий язык
и помочь пользователям использовать его как таковой.

Его книга «Язык программирования C ++» (Addison-Wesley, первое издание 1985 г., стр.
второе издание 1991 г., третье издание 1997 г., «специальное» издание 2000 г., четвертое издание 2013 г.)
широко читаемая книга такого рода и была
переведен на
минимум 19 языков.Более поздняя книга,
Дизайн и эволюция C ++
(Addison-Wesley, 1994) открыли новые горизонты в описании способа
язык программирования был сформирован идеями, идеалами, проблемами и практическими
ограничения.
Его учебник по программированию
Программирование — принципы и практика использования C ++ (второе издание),
переведено на 10 языков.
Его последняя книга,
Знакомство с C ++ (второе издание)
дает обзор языка C ++ и его стандартной библиотеки для опытных программистов.В дополнение к своим десяти книгам Страуструп опубликовал
более сотни научных и более популярных статей.

В 1989 году он принял активное участие в создании
стандарт ANSI / ISO для C ++
и продолжает работать над поддержанием и пересмотром этого стандарта.

Он получил множество международных наград за свою работу.
Было отмечено, что он должен получать только датчанин.
приз NAE Draper,
IET Медаль Фарадея,
медаль Джона Скотта и
награда ACM Грейс Мюррей Хоппер.

Связанная информация:

Бьярн Страуструп — редактор-консультант журнала Addison Wesley’s
C ++ в глубине серии.
Цель серии — представить « короткие книги, посвященные конкретным техническим
аудитории ».

Бьярн родился и вырос в
Орхус,
второй по величине город в
Дания.
Он отправился в
Орхусский университет
учится в
кафедра информатики
(затем позвонил
DAIMI)
получение датского эквивалента
имеет степень магистра по диссертации (канд.Научный. степень редко принимается
значительно меньше шести лет — по крайней мере, не тогда).
Орхус — прекрасный город с населением около 250 000 человек, красиво расположенный на востоке.
побережье Ютландии.

Бьярн защитил докторскую диссертацию. работы по проектированию распределенных систем в
Вычислительная лаборатория
из
Кембриджский университет, Англия.
Кембриджская компьютерная лаборатория отметила свое
75-летие в 2013 г. (История CL задокументирована в
очень красивая и читаемая книга).Он является почетным членом Черчилль-колледжа.
где он и его жена Мэриан провели замечательные и напряженные годы
и где родилась их дочь.
Кембридж
еще один замечательный город и одно из волшебных мест мира.
Его научным руководителем в Кембридже был
Дэвид Уиллер
и он также провел много времени, разговаривая (учился у)
Роджер Нидхэм.
Он действительно не узнал
Морис Уилкс, пока не прошло много лет.
Он делил офис с
Брюс Крофт,
Джереми Дион,
Нил Грей,
Дэвид Харпер,
Энди Хоппер,
и
Марк Пеззаро.

Вы можете найти еще несколько личных данных и некоторую информацию о родах.
C ++ в Стива Лора
Перейти к: История математиков, бриджистов,
Инженеры, шахматные мастера, ученые и иконоборцы, которые были героями
Программисты программной революции. Основные книги. ISBN 0-465-04225-2; 2001 г.
а также у Пола МакДжонса ‘
интервью
для Музея компьютерной истории
Сборник устной истории.

В 1979 году Бьярне Страуструп вместе с женой и дочерью переехал в
Нью-Джерси
присоединиться к
Центр компьютерных исследований Bell Telephone Laboratories
(в просторечии известен как 127 или 1127).На протяжении многих лет они жили в Саммите, Мейерсвилле и Вочанге — все примерно
10 минут езды от
Bell Labs ‘
главный исследовательский центр в Мюррей-Хилле.
В Мейерсвилле родился сын.
После распада Bell System в 1984 г.
Bell Labs стала AT&T Bell Labs, а после распада AT&T в 1995 году AT&T
Bell Labs была разделена на AT&T Labs.
и
Lucent Technologies Bell Labs.
С самого начала Бьярн был членом AT&T Labs — Research,
половина Bell Labs Information Sciences Research, которая
AT&T держалась особняком как
Lucent и
NCR были выделены.

Бьярн был главой исследовательского отдела крупномасштабного программирования из
его создание в AT&T Bell Labs до конца 2002 года, когда он присоединился к
факультет информатики Техасского университета A&M.
Он сохранил связь с
AT&T Labs — Исследования
в качестве сотрудника AT&T до 2012 года.

С 2002 по 2014 год Бьярн был профессором кафедры компьютерных наук инженерного колледжа в
Техасский университет A&M.
Он и его жена жили в доме в тихом лесном районе г.
Колледж-Стейшн, Техас.После отъезда в Нью-Йорк в январе 2014 года он сохраняет связь с ТАМУ в качестве заслуженного профессора университета.
Он был членом
Группа зонтиков в
Кафедра компьютерных наук и инженерии.

На протяжении многих лет Бьярне много времени проработал на факультетах информатики
Кембридж,
Колумбия,
и
Принстон.
В частности:

Он почетный член
Черчилль-колледж, Кембридж.

По состоянию на январь 2014 г.
Бьярне — управляющий директор технологического отдела
Морган Стенли
в Нью-Йорке.В 2019 году он был назначен первым техническим сотрудником Morgan Stanley.

По состоянию на январь 2014 г.
Приглашенный профессор компьютерных наук в
Колумбийский университет.

Переезд в Нью-Йорк был вызван желанием Мэриан и Бьярна быть ближе к своим детям и (особенно) внукам.
Бьярн также хотел освежить свое знакомство с разработкой критически важного программного обеспечения.
Академические проблемы могут отвлекать от работы, нацеленной непосредственно на решение производственных проблем (например,г., масштаба и надежности).

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

Он и его жена живут в
Нью-Йорк;
их дочь — врач, а сын — профессор системной биологии.

Морган Стенли
|
Колумбийский университет
|
Черчилль-колледж, Кембридж

дом
|
C ++
|
Часто задаваемые вопросы
|
технический FAQ
|
публикации
|
Документы WG21
|
TC ++ PL
|
Тур ++
|
Программирование
|
D&E
|
биография
|
интервью
|
видео
|
цитаты
|
Приложения
|
методические рекомендации
|
составители

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

За изобретение языка программирования C ++

«Дизайн и программирование — это человеческая деятельность; забудьте об этом, и все потеряно.»

— Бьярн Страуструп

Бьярне Страуструп родился в Орхусе, Дания, в 1950 году. Он получил степень магистра математики в Орхусском университете в 1975 году и докторскую степень по информатике в Кембриджском университете в 1979 году.

Страуструп затем присоединился к Исследовательскому центру компьютерных наук Bell Labs в Мюррее. Хилл, Нью-Джерси, где он разработал и внедрил C ++. Этот язык, основанный на C и вдохновленный Simula, предоставляет набор общих и гибких механизмов абстракции, которые можно напрямую и эффективно отображать на компьютерное оборудование.C ++ произвел революцию в индустрии программного обеспечения, позволив масштабно развертывать различные методы разработки программного обеспечения, включая объектно-ориентированное программирование, универсальное программирование и общее управление ресурсами. Более двух десятилетий C ++ был одним из наиболее широко используемых языков программирования с приложениями в таких областях, как общее системное программирование, связь, компьютерная графика, игры, пользовательские интерфейсы, встроенные системы, финансовые системы, авионика и научные вычисления.Влияние C ++ и идей, которые он инициировал и популяризировал, отчетливо виден далеко за пределами сообщества C ++.

В течение следующих десятилетий Страуструп руководил дальнейшей эволюцией C ++, участвуя в его усилиях по разработке стандартов ISO, в своих книгах и многочисленных научных и популярных статьях.

Страуструп — управляющий директор технологического подразделения Morgan Stanley в Нью-Йорке, приглашенный профессор Колумбийского университета и заслуженный профессор-исследователь в Техасском университете A&M (где он преподавал в течение десяти лет).Его исследовательские интересы включают дизайн, методы программирования, распределенные системы, производительность, надежность и ремонтопригодность.

Его награды включают: премию ACM Грейс Мюррей Хоппер (1993), член Национальной инженерной академии США (2004), премию Уильяма Проктера Сигмы Си за научные достижения (2005) и Rigmor og Carl Holst-Knudsens Videnskapspris Орхусского университета ( 2010). Он является членом IEEE и ACM.

Веб-сайт NAE — Д-р Бьярн Страуструп

Бьярне Страуструп — разработчик и разработчик C ++, одного из наиболее широко используемых и влиятельных языков программирования в истории вычислительной техники.После его официального выпуска в 1985 году он руководил его развитием посредством своих исследований, участия в разработке стандартов C ++ ISO, книг и многих научных и популярных статей.

C ++, основанный на C и изначально вдохновленный Simula, предоставляет общие и гибкие механизмы абстракции, которые можно напрямую и эффективно отображать на компьютерное оборудование. Он произвел революцию в индустрии программного обеспечения, позволив использовать в промышленном масштабе различные методы разработки программного обеспечения, включая объектно-ориентированное программирование, универсальное программирование и общее управление ресурсами.C ++ остается одним из наиболее широко используемых языков программирования с приложениями в общем системном программировании, коммуникациях, компьютерной графике, играх, пользовательских интерфейсах, встроенных системах, финансовых системах, медицинских системах, авионике, научных вычислениях и многих других областях. Его влияние, а также идеи, которые он инициировал и популяризировал, отчетливо видны далеко за пределами сообщества C ++.

Страуструп начал свою карьеру в Исследовательском центре компьютерных наук AT&T Bell Labs в Мюррей-Хилле, штат Нью-Джерси, где он разработал и внедрил C ++.С момента основания до 2002 года он возглавлял отдел крупномасштабных исследований в области программирования компании AT&T. После этого он преподавал и проводил исследования в Техасском университете A&M, получив звание заслуженного профессора университета. С 2014 года он был управляющим директором технологического подразделения Morgan Stanley в Нью-Йорке и приглашенным профессором Колумбийского университета. Его исследовательские интересы включают дизайн, методы программирования, распределенные системы, производительность, надежность и ремонтопригодность.

Его награды включают премию ACM Грейс Мюррей Хоппер (1993), избрание в Национальную инженерную академию (2004), премию Уильяма Проктера Сигмы Си за научные достижения (2005), Rigmor og Carl Holst-Knudsens Videnskapspris (2010), и медаль Фарадея Института инженерных технологий (2017). Он является членом IEEE, ACM и Музея компьютерной истории, а также почетным членом колледжа Черчилля в Кембридже.

Бьярне Страуструп родился в Орхусе, Дания, в 1950 году.Он получил степень магистра математики и информатики в Орхусском университете в 1975 году и докторскую степень по информатике в Кембриджском университете в 1979 году.

Бьярне Страуструп — Управляющий директор по технологиям

Введите «Бьярн Страуструп» в поисковой системе Google, и на экране появятся его многочисленные достижения. Страуструп является отцом C ++, одного из самых популярных и влиятельных языков программирования, когда-либо созданных, и строительного блока для всего, от мобильных операционных систем и виртуальной реальности до кода, используемого для управления марсоходом и, да, поисковой системы Google.C ++ повсюду: невидимая основа большинства наших компьютеризированных устройств и систем.

Он получил множество профессиональных наград за свою работу над C ++ и программированием в целом. Особенно престижная награда была получена в 2018 году, когда Страуструп получил высшую награду Национальной инженерной академии США: премию Чарльза Старка Дрейпера в области инженерии, ежегодно присуждаемую инженеру, которому приписывают технологические разработки, изменившие современную жизнь. Эту награду иногда называют «Нобелевской премией в области инженерии».«Совсем недавно он был удостоен награды Computer Pioneer Award IEEE Computer Society, которая отмечает важный вклад в развитие компьютерной индустрии, имеющий непреходящую ценность. Он имеет докторскую степень в Кембриджском университете и работает приглашенным профессором в Колумбийском университете.

Страуструп присоединился к Morgan Stanley в 2014 году отчасти потому, что был впечатлен репутацией компании в области инженерии и надежности. «Во время урагана Сэнди [в 2012 году] Morgan Stanley никогда не прекращал торговлю, — приводит он в качестве примера, — что означает, что у нас впечатляющая инфраструктура и впечатляющие инженеры.Страуструп — управляющий директор технологического подразделения и технический сотрудник, что является высшим знаком технического совершенства в Morgan Stanley. Страуструп делится своими мыслями о «Невидимом двигателе всего» в «Минуте Morgan Stanley».

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

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

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

Я часто путешествую и выступаю на государственных и частных конференциях, мероприятиях и в университетах, а также разговариваю с некоторыми из более чем 10 000 разработчиков, работающих в компании по всему миру. Одна из вещей, которая поразила меня, — это то, насколько глобальна компания.Я посетил технологов Morgan Stanley в Бангалоре, Будапеште, Глазго, Гонконге, Лондоне, Монреале, Мумбаи и Шанхае. Я уверен, что все участники чему-то научатся из таких обменов; конечно, всегда делаю.

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

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

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

Бьярне Страуструп | IEEE Computer Society

Бьярне Страуструп родился в Орхусе, Дания, в 1950 году. В 1975 году окончил Орхусский университет со степенью кандидата наук. ученый. (магистр) в области математики и информатики и получил докторскую степень. получил степень бакалавра компьютерных наук в Кембриджском университете, Англия, в 1979 году. После окончания университета доктор Страуструп начал работать в Исследовательском центре компьютерных наук Bell Labs в Мюррей-Хилле, штат Нью-Джерси. Оставаясь с AT&T во время различных разрывов, доктор.Страуструп был руководителем исследовательского отдела крупномасштабного программирования в AT&T Labs с 1995 до конца 2002 года. В настоящее время он является профессором кафедры компьютерных наук Техасского университета A&M на кафедре инженерного факультета и поддерживает связь с исследовательской лабораторией AT&T Labs в качестве члена Лаборатория исследования информационного и системного программного обеспечения.

Доктор Страуструп разработал и внедрил C ++. За последнее десятилетие C ++ стал наиболее широко используемым языком для поддержки объектно-ориентированного программирования, сделав методы абстракции доступными и управляемыми для основных проектов.Используя C ++ в качестве своего инструмента, д-р Страуструп стал пионером в использовании объектно-ориентированных и общих методов программирования в областях приложений, где эффективность является высшим приоритетом; Примеры включают общее системное программирование, переключение, моделирование, графику, пользовательские интерфейсы, встроенные системы и научные вычисления. Влияние C ++ и идей, которые он популяризировал, ясно видно далеко за пределами сообщества C ++. Языки, включая C, C #, Java и Fortran99, предоставляют функции, впервые предназначенные для массового использования в C ++, как и такие системы, как COM и CORBA.

Его книга «Язык программирования C ++» (Addison-Wesley, первое издание 1985 г., второе издание 1991 г., третье издание 1997 г., «специальное» издание 2000 г.) является самой читаемой книгой такого рода и была переведена как минимум на 18 языков. В более поздней книге «Дизайн и эволюция C ++» (Addison-Wesley, 1994) были заложены новые основы в описании того, как язык программирования формируется идеями, идеалами, проблемами и практическими ограничениями. В дополнение к своим пяти книгам доктор Страуструп опубликовал более сотни научных и более популярных статей.

Доктор Страуструп принял активное участие в создании стандарта ANSI / ISO для C ++ и продолжает работать над поддержанием и пересмотром этого стандарта. В 2004 году он был избран членом Национальной инженерной академии «за создание языка программирования C ++». Он является научным сотрудником AT&T Bell Laboratories и сотрудником AT&T. Он является научным сотрудником ACM и старшим членом IEEE. Д-р Страуструп получил в 1993 году награду ACM Grace Murray Hopper «за свою раннюю работу, заложившую основы языка программирования C ++.Он был назван одним из «двенадцати лучших молодых ученых Америки» журналом Fortune Magazine в 1990 году и одним из «20 самых влиятельных людей в компьютерной индустрии за последние 20 лет» журналом BYTE в 1995 году.

Награды

Премия Computer Pioneer 2018
«За то, что он сделал объектно-ориентированное программирование и универсальное программирование широким кругом людей, разработав и реализовав язык программирования C ++.”
Узнайте больше о премии Computer Pioneer Award

2004 Награда компьютерного предпринимателя
«За новаторство в разработке и коммерциализации промышленных технологий объектно-ориентированного программирования и глубокие изменения, которые они способствовали развитию бизнеса и промышленности».
Узнайте больше о Премии компьютерного предпринимателя

Бьярн Страуструп (автор языка программирования C ++)

Язык программирования C ++

4.09 средняя оценка — 3752 оценки

опубликовано
1986 г.

35 изданий

Хочу почитать
сохранение…

  • Хочу почитать

  • В настоящее время читаю

  • Читать

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Знакомство с C ++

4.30 средняя оценка — 710 оценок

опубликовано
2013

11 выпусков

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Дизайн и эволюция C ++

4.31 средний рейтинг — 299 оценок

опубликовано
1994 г.

3 издания

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Программирование: принципы и практика использования C ++

4.20 средняя оценка — 400 оценок

опубликовано
2008 г.

13 выпусков

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Подробный бокс-сет C ++

пользователя

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

Эндрю Кениг,

Херб Саттер

4.41 средняя оценка — 27 оценок

опубликовано
2001 г.

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Справочное руководство по C ++

3.96 средняя оценка — 24 оценки

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Основные принципы C ++

пользователя

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

Херб Саттер

3.89 средняя оценка — 9 оценок

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Einfuhrung в Die Programmierung Mit C ++

3.67 средняя оценка — 3 оценки

опубликовано
2010 г.

4 издания

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Die C ++ — Программист.Deutsche Übersetzung der Special Edition

0.00 средняя оценка — 0 оценок

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Die C ++ — Programmiersprache: Deutsche Übersetzung der Special Edition

0.00 средняя оценка — 0 оценок

Хочу почитать
сохранение…

Книга оценок ошибок. Обновите и попробуйте еще раз.

Оценить книгу

Очистить рейтинг

1 из 5 звезд2 из 5 звезд3 из 5 звезд4 из 5 звезд5 из 5 звезд

Бьярн Страуструп: компьютерный мастер и создатель языка C ++

Родился 30 декабря 1950 года в семье рабочего в Орхусе, Дания. Страуструп получил раннее образование в местных школах.В 1969 году он поступил в Орхусский университет и в 1975 году получил степень магистра математики и информатики. Заинтересовавшись микропрограммированием и машинной архитектурой, он изучил основы объектно-ориентированного программирования у его изобретателя, норвежского ученого-информатика Кристен Найгаард. В 1979 году он получил докторскую степень по информатике в Кембриджском университете, Великобритания. Он является почетным профессором Орхусского университета и почетным членом колледжа Черчилля.

Карьера

В 1979 году Страуструп начал свою карьеру в Исследовательском центре компьютерных наук Bell Labs в Мюррей-Хилле, штат Нью-Джерси, США, где он начал работать над C ++ и методами программирования.

Он возглавлял отдел крупномасштабных исследований в области программирования AT&T Bell Labs с момента его создания до конца 2002 года. В 1993 году он стал научным сотрудником Bell Lab, а в 1996 году — научным сотрудником AT&T. Он также связан с AT&T Labs — Research и является членом ее Лаборатории исследования информационного и системного программного обеспечения. Он работает в качестве приглашенного преподавателя на факультете компьютерных наук Колумбийского университета, а также является членом Национальной инженерной академии США (NAE) и научным сотрудником Института инженеров по электротехнике и электронике (IEEE) и Ассоциации вычислительной техники (ACM). ).

C ++

В 1979 году он начал разработку C ++ (первоначально назывался C с классами). C ++ — это язык для определения и использования легких абстракций. Он обладает значительными преимуществами в тех областях, где необходимо эффективно обращаться с оборудованием и справляться со значительной сложностью. C ++ стал доступен в 1985 году. В том же году он также опубликовал учебник под названием «Язык программирования C ++».

Страуструп задокументировал свои принципы, лежащие в основе разработки C ++ и эволюции языка, в своей книге 1994 года «Дизайн и эволюция C ++» и в двух статьях для конференций ACM по истории языков программирования.

Личная жизнь и наследие

Страуструп живет в Нью-Йорке со своей женой. Их дочь — врач, а сын — профессор системной биологии.

Помимо исследований, он интересуется легкой литературой, общей историей, путешествиями, музыкой, фотографией, а также пешими прогулками и бегом. Он был избран членом NAE в 2004 году.

Награды

Страуструп получил множество наград, включая Премию Уильяма Проктера за научные достижения в 2005 году, Премию компьютерного предпринимателя от IEEE в 2004 году, Премию Грейс Мюррей Хоппер ACM (1993), Премию Чарльза Старка Дрейпера 2018 года от Национальной инженерной академии США (NAE), премию Грейс Мюррей Хоппер (1993), медаль Фарадея IET 2017 года и премию Dr.Премия Добба за выдающиеся достижения в программировании (2008 г.).

Он получил стипендии от ACM и IEEE и был избран членом NAE. В 2013 году он был избран в Зал славы электронного дизайна.

Страуструп является автором большого количества книг, таких как «Путешествие по C ++», «Программирование: принципы и практика с использованием C ++», «Язык программирования C ++» и «Дизайн и эволюция C ++».

В 2019 году он был удостоен звания почетного доктора Университета Карлоса III, Испания.

Источник: Wikipedia, stroustrup.com, computerhistory.org

ИНТЕРЕСНЫЕ ФАКТЫ

1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2021 © Все права защищены. Карта сайта