Когда был создан язык C++?
C++
Язык возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды.
Microsoft Foundation Classes
Первая версия MFC была выпущена вместе с седьмой версией 16-разрядного компилятора языка C/C++ компании Microsoft в 1992 году. Для тех, кто занимался разработкой приложений с использованием API-функций, пакет MFC обещал весьма значительное повышение производительности процесса программирования.
C++
C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.
Брайт, Уолтер
Уолтер Брайт () — программист, известный как главный разработчик первого «родного» компилятора C++ "Zortech C++" (позже ставшего "Symantec C++", а затем "Digital Mars C++") и создатель языка D. Владеет компанией Digital Mars.
GNU Compiler Collection
До версии 4.7.2 GCC был почти полностью написан на Си, хотя значительная часть front-end для Ады написана на Аде. С разработка была переведена на язык C++, версия 4.8 и более поздние требуют для своей сборки наличия C++ компилятора, поддерживающего С++ 2003.
ColdFusion
ColdFusion 1.0 был выпущен в июне 1995 года корпорацией Allaire. Язык был назван DBML (от  — «язык разметки баз данных») и позже был переименован в CFML (от  — «язык разметки ColdFusion»). Начиная с версии 1.5, ColdFusion содержал совместимость с C++, позволяя пользователям разрабатывать дополнения к языку. Годами позже это послужило основой для создания "ColdFusion Extension (CFX) Tags", нынешнего метода для дополнения языка.
C++ Technical Report 1
Одной из концепций при разработке C++ было обеспечение как можно большей совместимости с языком программирования Си. Однако данная концепция не являлась и не является приоритетной, а лишь настоятельно рекомендованной, а потому C++ нельзя в строгом смысле считать надмножеством Си (стандарты этих языков расходятся). TR1 — это попытка примирить некоторые из различий данных языков путём добавления различных заголовков в следующие библиотеки С++: codice_5, codice_6, codice_1 и т. д. Данные изменения способствуют приведению C++ в соответствие с C99 (не все части C99 включены в TR1).
G++
На операционных системах Unix, команда gcc обычно используется для вызова компилятора GCC, как и команда g++. По умолчанию язык программирования C или C++ определяется по расширению компилируемого файла(см. g++ --help описание параметра -x). Но при этом G++ все равно является компилятором, а не просто препроцессором. G++ строит объектный код напрямую из исходного C++ кода, без использования промежуточной С-версии (в отличие от некоторых компиляторов, которые создают объектный код Си из исходников, написанных на C++). Это позволяет получать более полную и точную информацию о работе программы при отладке (например, при использовании GDB).
UML
Предпосылки появления языка моделирования "UML" обозначились в связи с бурным развитием во второй половине XX века объектно-ориентированных языков программирования (Simula 67, Smalltalk, Objective C, C++ и др). Вследствие непрекращающегося усложнения создаваемых программных продуктов возникла нужда в учёте всё новых и новых возможностей языков и средств разработки при анализе, формулировании требований и в процессе проектирования программных приложений. Например, в короткий промежуток времени с 1989 года по 1994 год количество объектно-ориентированных инструментов выросло с десятка до более, чем полусотни. Однако, многие разработчики затруднялись подобрать язык моделирования, который бы полностью отвечал всем их потребностям. В результате выделилось новое поколение методов разработки, среди, которого особую популярность приобрели , созданный Якобсоном "ObjectFOriented Software Engineering" ("OOSE") и разработанный Рамбо "(Object Modeling Technique" ("OMT"). Помимо них существовали и другие завершённые технологии, например "Fusion", "Shlaer-Mellor" и "Coad-Yourdon", однако всем из них были присущи не только преимущества, но и существенные недостатки.
Sstream
sstream — заголовочный файл с классами, функциями и переменными для организации работы со строками, через интерфейс потоков, в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от сокращения имени строчного типа данных () и (поток). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки потоковой работы со строчным типом данных. sstream использует единственный объект sstream для организации работы со строками. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён — std.
Язык программирования
В 1980-е годы наступил период, который можно условно назвать временем консолидации. Язык С++ объединил в себе черты объектно-ориентированного и системного программирования, правительство США стандартизировало язык Ада, производный от Паскаля и предназначенный для использования в бортовых системах управления военными объектами, в Японии и других странах мира осуществлялись значительные инвестиции в изучение перспектив так называемых языков пятого поколения, которые включали бы в себя конструкции логического программирования. Сообщество функциональных языков приняло в качестве стандарта ML и Лисп. В целом этот период характеризовался скорее опорой на заложенный в предыдущем десятилетии фундамент, нежели разработкой новых парадигм.
C Sharp
Проект спецификации C# 2.0 впервые был опубликован Microsoft в октябре 2003 года; в 2004 году выходили бета-версии (проект с кодовым названием Whidbey), C# 2.0 окончательно вышел 7 ноября 2005 года вместе с Visual Studio 2005 и .NET 2.0.
В июне 2004 года Андерс Хейлсберг впервые рассказал на сайте Microsoft о планируемых расширениях языка в C#3.0. В сентябре 2005 года вышли проект спецификации C# 3.0 и бета-версия C# 3.0, устанавливаемая в виде дополнения к существующим Visual Studio 2005 и .NET 2.0. Окончательно эта версия языка вошла в Visual Studio 2008 и .NET 3.5.В C# 3.0 появились следующие радикальные добавления к языку:
C# 3.0 совместим с C# 2.0 по генерируемому MSIL-коду; улучшения в языке — чисто синтаксические и реализуются на этапе компиляции. Например, многие из интегрированных запросов LINQ можно осуществить, используя безымянные делегаты в сочетании с предикатными методами над контейнерами наподобие codice_15 и codice_16.
C++
Стандартная библиотека C++ также развивалась вместе с ним. Первым добавлением к стандартной библиотеке C++ стали потоки ввода-вывода, обеспечивающие средства для замены традиционных функций C codice_2 и codice_3. Позднее самым значительным развитием стандартной библиотеки стало включение в неё Стандартной библиотеки шаблонов.
C++
STL до включения в стандарт C++ была сторонней разработкой, вначале — фирмы HP, а затем SGI. Стандарт языка не называет её «STL», так как эта библиотека стала неотъемлемой частью языка, однако многие люди до сих пор используют это название, чтобы отличать её от остальной части стандартной библиотеки (потоки ввода-вывода (iostream), подраздел C и другие).
SMath Studio
Первая публичная бета-версия программы была создана в 2005 году для карманных компьютеров на языке C# под платформу Microsoft .NET Compact Framework 1.0. На текущий момент SMath Studio имеет версии для нескольких платформ: КПК, коммуникаторов, смартфонов, персональных компьютеров на базе операционных систем Windows и Linux и логически разделена на две программы: Handheld (карманная) и Desktop (настольная), которые соответствуют типу поддерживаемых платформ.
Visual J++
Visual J++ — реализация языка Java и среды разработки для него от компании Microsoft. Компания Microsoft прекратила развитие языка в январе 2004 года, критические обновления прекращены в 2007 году. Последней версией среды разработки с языком Visual J++ являлась Visual Studio 6.0.
Си (язык программирования)
После стандартизации в ANSI спецификация языка Си оставалась относительно неизменной в течение долгого времени, в то время как C++ продолжал развиваться (в 1995 году в стандарт Си была внесена Первая нормативная поправка, но её почти никто не признавал). Однако в конце 1990-х годов стандарт подвергся пересмотру, что привело к публикации "ISO 9899:1999" в 1999 году. Этот стандарт обычно называют «C99». В марте 2000 года он был принят и адаптирован ANSI.
C++17
Язык Си был «переносимым ассемблером»: он позволял делать быстрые программы, компилирующиеся на разных компьютерах, к тому же использовал ассемблерные утилиты (компоновщик, библиотекарь). Понятия вроде «заголовочный файл» и «единица трансляции» — отголоски тех времён. С тех пор утекло немало воды, Си++ теперь язык очень высокого уровня, а компилятор часто оптимизирует лучше, чем программист вручную на ассемблере.
C++17
С++17 (также известный как C++1z) — это название версии стандарта C++ISO/IEC. Спецификации для C++17 были опубликованы в декабре 2017 года.Триграфы использовались для машин с нестандартной кодировкой и/или ограниченной клавиатурой. Ещё в конце 80-х, с распространением 8-битных кодировок и дешёвых резиномембранных клавиатур, триграфы фактически потеряли смысл, и тридцать лет спустя были закономерно исключены.
Functional (C++)
Впервые заголовочный файл  появился в стандарте языка в 1998 году, куда был добавлен вместе со стандартной библиотекой шаблонов. Изначально в него вошел набор вспомогательных функциональных объектов для удобства использования алгоритмов STL. Также сюда вошли связыватели (binders) и набор обёрток функций, цель которых была облегчить работу в тех случаях, когда активно использовалась передача указателей на функции, то есть работа с функциями, как с некими объектами.
Существенное пополнение заголовочного файла предлагалось в библиотеке расширений С++ TR1
. Из библиотеки Boost в STL переносились такие классы, как function, bind, mem_fn, result_of, reference_wrapper, hash.
Большинство этих изменений, за исключением result_of, и вошло в актуальный на данный момент стандарт языка C++17. Поскольку классы function и bind во многом дублируют функциональность связывателей и обёрток функций редакции стандарта 1998-го года, то в С++11 последние были обозначены как устаревшие (deprecated).
C++/CX
Файл, сгенерированный и обновляемый дизайнером GUI, не должен изменяться программистом вручную. Обратите внимание на использование ключевого слово codice_5.
Файл, в котором программист описывает логику пользовательского интерфейса. Заголовочный файл, сгенерированный ранее, подключается через include. В данном файл ключевое слово codice_5 не нужно.
В этом файле показана реализация членов частичного класса.
Windows Runtime и, следовательно, C++/CX поддерживают runtime generics. Информация об обобщенных типах сохраняется в метаданных и инстанциируется во время исполнения (в отличие от классических шаблонов C++, которые обрабатываются в момент компиляции).
Все WinRT программы описывают объявленные в них классы и их члены через метаданные. Их формат совпадает с форматом метаданных Common Language Infrastructure (CLI), который был создан для .NET Framework. Благодаря этому возможно комбинирование кодов, написанных на C++/CX, языках CLI и на Javascript.
Ultimate++
Ultimate++ (известен также как U++ и UPP) — кросс-платформенный инструментарий разработки ПО на языке программирования C++. Целью U++ является уменьшение сложности типичных десктопных приложений за счёт интенсивного использования особенностей C++. Работает под Linux/X11, BSD/X11 и Windows.
Теория языков программирования
В некотором смысле история теории языка программирования предшествует даже развитию самих языков программирования. В частности, λ-исчисление, разработанное Алонзо Чёрчем и Стивеном Клини в 1930-х годах, фактически является первым языком программирования, даже при том, что оно было предназначено больше для теоретических вопросов вычислимости, нежели является средством для программистов; многие современные функциональные языки программирования являются вариантами λ-исчисления. Дальнейшая история теории тесно переплетена с историей языков программирования, при этом в рамках теоретических исследований создавались новые парадигмы, конструкции и методы, а результаты внедрения их в практические языки программирования обеспечивали обратную связь для развития теории.
Cilk
Разрабатывался с 1994 года в лаборатории Информатики MIT. Основан на языке ANSI C, с добавлением небольшого количества ключевых слов Cilk. Позже был расширен на Си++, в виде Cilk++ — коммерческого продукта, разрабатываемого компанией Cilk Arts.
Microsoft QuickC
Microsoft QuickC — интегрированная среда разработки для языка программирования C, выпускавшаяся корпорацией Microsoft с 1987 по 1993 год, когда на смену ей пришла среда разработки Visual C++. Продукт позиционировался как конкурент среды разработки Turbo C, выпускавшейся компанией Borland.
C++11
C++11 или ISO/IEC 14882:2011 (в процессе работы над стандартом носил условное наименование C++0x) — новая версия стандарта языка C++, вместо ранее действовавшего ISO/IEC 14882:2003. Новый стандарт включает дополнения в ядре языка и расширение стандартной библиотеки, в том числе большую часть TR1 — кроме, вероятно, библиотеки специальных математических функций. Несмотря на то, что работа над стандартом уже завершена — данная статья, возможно, не будет точно соответствовать конечному варианту стандарта. Разные версии (в том числе самые новые) черновика будущего стандарта наряду с некоторыми другими документами, посвящёнными стандартизации C++, публикуются на сайте комитета ISO C++.
Дизайн и эволюция C++
Идею написать статью об истории C++ Страуструпу предложили на второй конференции ACM по истории языков программирования в 1993 году (ACM —2). Заинтересованность других побудила его на более серьёзную работу, и к 1994 году была написана целая книга.
Встраиваемый C++
Embedded C ++ ( EC ++ ) - это диалект языка программирования C++ для встраиваемых систем. Он был определен отраслевой группой, во главе с основными японскими производителями центральных процессоров (ЦП), включая NEC, Hitachi , Fujitsu и Toshiba, для устранения недостатков C++ для встроенных приложений. Целью работы является сохранение наиболее полезных объектно-ориентированных возможностей языка C++ с одновременным минимизацией размера кода при максимальной эффективности выполнения и упрощении построения компилятора. Официальный веб-сайт заявляет о своей цели: «предоставить программистам встроенных систем подмножество C++, которое среднему программисту C легко понять и использовать».
.NET Framework
.NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для разных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду.
Мультипарадигмальный язык программирования
В качестве одного из наиболее успешных мультипарадигмальных языков программирования часто называют язык C++.
C++
Все противопоставляемые C++ языки программирования, если проходили процедуру стандартизации (что не обязательно для портируемости), то лишь после многолетней апробации на практике; при этом все они изначально имеют формальное определение семантики, так что накапливающиеся к моменту стандартизации изменения от первой версии языка оказываются не принципиальны.
C++
Попыткой создать промышленную замену C/C++ стал разработанный в корпорации Google в 2009 году язык программирования Go. Авторы языка прямо указывают, что мотивом для его создания были недостатки процесса разработки, вызванные особенностями языков Си и C++. Go - компактный, несложный по структуре императивный язык с Си-подобным синтаксисом, без препроцессора, со статической типизацией, строгим контролем типов, системой пакетов, автоматическим управлением памятью, некоторыми функциональными чертами (функции-значения, замыкания), экономно построенной ООП-подсистемой без поддержки наследования реализации, но с интерфейсами и утиной типизацией, встроенной многопоточностью, основанной на сопрограммах и каналах (a-la Occam). Язык позиционируется как альтернатива C++, то есть, в первую очередь, средство групповой разработки высокоэффективных вычислительных систем большой сложности, в том числе распределённых, допускающее, при необходимости, низкоуровневое программирование.
BCPL
BCPL стал ответом на сложности своего предшественника, языка CPL, разработанного в начале 1960-х. Ричардс создал BCPL, «удалив из полного языка те функции, которые усложняли компиляцию». Первая реализация компилятора, работавшего на IBM 7094 под ОС CTSS, была написана Ричардсом весной 1967 в ходе посещения им исследовательской лаборатории «Project MAC» в МТИ. Язык был впервые описан в документе, представленном на 1969 Spring Joint Computer Conference.
C++
В 2003 году был опубликован стандарт языка ISO/IEC 14882:2003, где были исправлены выявленные ошибки и недочёты предыдущей версии стандарта.
IntelliSense
IntelliSense вступила в новую стадию разработки с появлением Visual Studio .NET, поддерживавшей метаданные и модель документации кода .NET Framework. В настоящее время IntelliSense поддерживается в Visual Studio для таких языков, как C++, C#, J#, Visual Basic, Visual FoxPro, XML, HTML, XSLT и других. Начиная с Visual Studio 2005 IntelliSense по умолчанию начинает предлагать варианты дополнения кода, не требуя ввода маркеров, то есть, как только пользователь начинает печатать. Поскольку теперь доступные варианты включают в себя и конструкции языка (такие как for или if), они также были включены в список вариантов для автодополнения.
Вариативный шаблон
Вариативный шаблон в C++ был разработан Дугласом Грегором и Яакко Ярви и был позже стандартизирован в C++11. До появления C++11, шаблоны (классов и функций) могли принимать только фиксированное число аргументов, которые должны были быть определены, когда шаблон был впервые объявлен. 
Синтаксис вариативного шаблона:Приведенный выше шаблон класса tuple (от англ. кортеж) может принять любое число входных параметров. Например, экземпляр вышеуказанного шаблонного класса создают с тремя аргументами:Число аргументов может быть равно нулю, поэтому codice_1 будет также работать.
C++
В 1998 году был опубликован стандарт языка ISO/IEC 14882:1998 (известный как C++98), разработанный комитетом по стандартизации C++ (ISO/IEC JTC1/SC22/WG21 working group). Стандарт C++ не описывает способы именования объектов, некоторые детали обработки исключений и другие возможности, связанные с деталями реализации, что делает несовместимым объектный код, созданный различными компиляторами. Однако для этого третьими лицами создано множество стандартов для конкретных архитектур и операционных систем.
Программная инженерия
Эти достижения в области программного обеспечения были встречены большим прорывом в компьютерной технике. В середине 1970-х годов был представлен микрокомпьютер, что позволило любителям получить собственный компьютер и писать свои программы для него. Это, в свою очередь привело к появлению персональных компьютеров (ПК) и Microsoft Windows. Также в середине 1980-х появляются такие понятия как жизненный цикл программного обеспечения в качестве некоторого консенсуса для централизованной разработки программного обеспечения. Конец 1970-х и начало 1980-х годов ознаменовались появлением нескольких новых симула-подобных объектно-ориентированных языков программирования, в том числе Smalltalk, Objective-C и C++.
C99
После процесса стандартизации ANSI спецификация языка Си некоторое время оставалась относительно неизменной, тогда как C++ продолжал развиваться, особенно во время его стандартизации. Нормативная поправка 1 создала новый стандарт языка Си в 1995 году, но только с точки зрения исправления некоторых деталей стандарта C89 и добавления расширенной поддержки интернациональных наборов символов. Тем не менее, стандарт подвергся дальнейшей ревизии в конце 1990-х, что привело к публикации стандарта ISO/IEC 9899:1999 в 1999 году. Этот стандарт часто упоминается как «C99». Он был принят в качестве стандарта ANSI в мае 2000 года. Международный стандарт Си поддерживается рабочей группой ISO/IEC JTC1/SC22/WG14.
DC++
DC++ («диси-плюс-плюс») — свободный и открытый клиент файлообменной сети Direct Connect для ОС Windows. Разработан как замена стандартному клиенту NeoModus Direct Connect, написанному на Visual Basic.
C++
Ещё одним языком, рассматриваемым как конкурент C++, стал Nemerle, являющийся результатом попытки совместить модель типизации Хиндли-Милнера и макро-подмножество Common Lisp с языком C#.. В том же русле находится созданный Microsoft язык F# — диалект ML, адаптированный для среды .NET.
Microsoft Visual C++
Visual C++ поддерживает перечень приложений как на Managed C++ и C++/CLI, так и на обычном C++, и тем самым позволяет генерировать код как для платформы .NET Framework, так и для исполнения в среде «чистой» Windows. В этом отношении Visual C++ является уникальным среди других языковых средств, предоставляемых средой Visual Studio, поскольку ни Visual Basic .NET, ни Visual J# не способны генерировать код для чистого Win32, в отличие от предыдущих версий (Visual Basic и Visual J++ соответственно).
C++14
C++14 — неофициальное название последней версии стандарта C++ ISO/IEC JTC1 (полное название: «"International Standard ISO/IEC 14882:2014(E) Programming Language C++"»). C++14 можно рассматривать как небольшое расширение над C++11, содержащее в основном исправления ошибок и небольшие улучшения. Комитет разработки нового стандарта опубликовал черновик N3690 15 мая 2013. Рабочая версия черновика N3936 была опубликована 2 марта 2014 года, заключительный период голосования закрыт 15 августа 2014 года, а результат (единогласное одобрение) был объявлен 18 августа 2014 года.
Стандартная библиотека языка Си
И Unix, и Си были созданы в AT&T’s Bell Laboratories в конце 1960-х — начале 1970-х. В 1970-е язык программирования Си начал пользоваться невероятной популярностью. Множество университетов и организаций начали создание собственных вариантов языка, более подходящих для собственных нужд. С началом 1980-х проблемы совместимости между различными реализациями языка Си стали слишком очевидными. В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет для принятия стандарта языка Си, известный как «ANSI Си». Эта работа вылилась в создание так называемого стандарта C89 в 1989. Часть итогового стандарта была набором библиотек, названная Стандартная библиотека ANSI Си.
Microsoft Foundation Classes
Пакет Microsoft Foundation Classes (MFC) — библиотека на языке C++, разработанная Microsoft и призванная облегчить разработку GUI-приложений для Microsoft Windows путём использования богатого набора библиотечных классов.
.NET Framework
В феврале 2000 года Стив Балмер, выступая на конференции VBITS 2000 в Сан-Франциско, рассказал о новой версии Visual Basic и Visual C++, являвшихся до той поры краеугольными камнями Visual Studio. Поскольку график выхода версий Visual Studio к тому моменту был заметно нарушен (Visual Studio 6.0 вышла в сентябре 1998 года, а до этого выпуски входящих в её состав инструментов происходили ежегодно), то информация о нововведениях вызывала изрядный интерес.
Common Language Runtime
Common Language Runtime ( — "общеязыковая исполняющая среда") — исполняющая среда для байт-кода CIL (MSIL), в которой компилируются программы, написанные на .NET-совместимых языках программирования (C#, Managed C++, Visual Basic .NET, F# и прочие). CLR является одним из основных компонентов пакета Microsoft .NET Framework.
Стандартная библиотека языка C++
В языке программирования C++ термин Стандартная Библиотека означает коллекцию классов и функций, написанных на базовом языке. Стандартная Библиотека поддерживает несколько основных контейнеров, функций для работы с этими контейнерами, объектов-функции, основных типов строк и потоков (включая интерактивный и файловый ввод-вывод), поддержку некоторых языковых особенностей, и часто используемые функции для выполнения таких задач, как, например, нахождение квадратного корня числа. Стандартная Библиотека языка C++ также включает в себя спецификации стандарта ISO C90 стандартной библиотеки языка Си. Функциональные особенности Стандартной Библиотеки объявляются внутри пространства имен "std".
C++
(читается "си-плюс-плюс") — компилируемый, статически типизированный язык программирования общего назначени.
C++
Одной из первых альтернатив C++ в прикладном программировании стал язык Java, разработанный Sun Microsystems, который часто ошибочно считают прямым потомком C++. На деле в Java от C++ нет ничего, кроме базового синтаксиса — семантика Java унаследована от языка Модула-2, и основы семантики C++ в Java не прослеживаются. Учитывая это, а также генеалогию языков (Модула-2 является потомком Симулы, как и C++, но им не является Си), Java правильнее называть «"троюродным племянником"» C++, нежели «"наследником"». По тому же пути пошла компания Microsoft, предложив язык C#.
C++
До начала официальной стандартизации язык развивался в основном силами Страуструпа в ответ на запросы программистского сообщества. Функцию стандартных описаний языка выполняли написанные Страуструпом печатные работы по C++ (описание языка, справочное руководство и так далее). Лишь в 1998 году был ратифицирован международный стандарт языка C++: ISO/IEC 14882:1998 «Standard for the C++ Programming Language»; после принятия технических исправлений к стандарту в 2003 году — следующая версия этого стандарта — ISO/IEC 14882:2003.
Клу
Клу (, "CLU") — объектно-ориентированный язык программирования, одним из первых реализовавший концепцию абстрактных типов данных и парадигму обобщённого программирования. Создан группой учёных Массачусетского технологического института под руководством Барбары Лисков в 1974 году, широкого применения в практике не нашёл, однако многие его элементы использованы при создании таких языков, как Ада, C++, Java, Sather, Python, C#.
Standard ML
Около 1980 года реализовал первый компилятор , дополнив ML некоторыми своими идеями. Вскоре Карделли портировал на Unix, используя Berkley Pascal. Среда выполнения была переписана на Си, но большая часть компилятора оставалась на Паскале. Работа Карделли вдохновила Милнера на создание SML как самостоятельного языка общего назначения, и они начали совместную работу в Эдинбурге, результатом чего стал компилятор , выпущенный в 1984 году. В процессе этой работы Майк Гордон придумал ссылочные типы и предложил их Луи Дамасу, который позже защитил на них диссертацию. Одновременно велось сотрудничество Кэмбриджа с INRIA. Жерар Хью из INRIA портировал ML на Maclisp под Multics. INRIA разработали собственный диалект ML, названный Caml, и впоследствии развившийся в OCaml. оптимизировал , так что код на ML стал работать в 4-5 раз быстрее. Вскоре после этого Дэвид Мэтьюз разработал язык Poly на основе ML. Дальнейшая работа в этом направлении привела к созданию среды . В 1986 Дэвид МакКуин сформулировал язык модулей ML, и к работе подключился . Совместно они начали вести работу над компилятором , который служил одновременно исследовательской платформой для развития языка и первым промышленным оптимизирующим компилятором. Многие из реализаций языка были первоначально разработаны с использованием и затем раскручены.
C++ Builder
Изначально разрабатывался компанией Borland Software, а затем её подразделением CodeGear, ныне принадлежащим компании Embarcadero Technologies.
C++
Неоправданное обилие побочных эффектов (даже в таких простых операциях как индексация массива), в сочетании с отсутствием контроля со стороны системы времени исполнения языка и слабой системой типов, делает программы на C++ традиционно нестабильными, что исключает применение C++ при высоких требованиях отказоустойчивости. Кроме того, это увеличивает длительность самого процесса разработки. Общеизвестные сообщения об ошибках при фатальных крахах прикладных программ, такие как «codice_107», «codice_108» или «codice_109», присущи в наибольшей степени именно C++. (Контр-примеры: для потомков ML фатальный крах в принципе невозможен — программа может навечно уйти в расчёты или выдать сообщение об ошибке, но никогда не обрушится — кроме того, контроль типов заметно сокращает время разработки; семантика Форта обеспечивает практически гарантированное выявление ошибок на этапе разработки; Eiffel, Smalltalk и Erlang предоставляют простые способы обработки любых возможных ошибок самой программой без обрушения.)
C++
Поскольку все элементы семантики C++, отсутствующие в Си, были заимствованы из других языков (зачастую чужеродных Алголу), очевидно, что для адекватного применения этих взаимно противоречивых возможностей и избегания провоцируемых ими ошибок программисту на C++ крайне желательно знать непосредственно эти языки-источники и лежащую в их основе формальную базу. То есть чем более широк профессиональный кругозор программиста, тем лучше он сможет программировать на C++. Однако на практике положительная оценка и предпочтение использования C++ характерны преимущественно для программистов, не владеющих ни одним языком, не являющимся потомком Алгола (не считая ограниченного набора узкоспециализированных языков, таких как SQL, HTML, Perl и др.). Те же, кто имеет опыт использования языков, построенных на иной теоретической базе, чаще отзываются о C++ скептически и стараются его избегать, если нет вынужденности поддерживать унаследованный код. Это даёт основания полагать, что существует обратная зависимость между умением программировать на C++ в «хорошем» стиле и желанием использовать C++ в качестве инструмента разработки, из которой следует, что защищающие C++ программисты, по всей видимости, заблуждаются в отношении того, что именно следует считать «хорошим» стилем программирования.
C++ Technical Report 1
Документ впервые был распространён в виде черновика Draft Technical Report on C++ Library Extensions, затем в 2007 году опубликован, как ISO/IEC стандарт, под названием ISO/IEC TR 19768:2007.
Borland C++
Borland C++ — среда программирования (IDE), разработанная фирмой Borland для создания программ на языках программирования Си и C++. Каждая версия среды включает компилятор, поддерживающий свой стандарт языка программирования. Первоначально среда программирования использовалась для создания программ под DOS, но с появлением и распространением Windows и Windows NT были предложены средства для разработки приложений для этих операционных систем.
C++
Выбор именно C в качестве базы для создания нового языка программирования объясняется тем, что язык C:Несмотря на ряд известных недостатков языка C, Страуструп пошёл на его использование в качестве основы, так как «в C есть свои проблемы, но их имел бы и разработанный с нуля язык, а проблемы C нам известны». Кроме того, это позволило быстро получить прототип компилятора (), который лишь выполнял трансляцию добавленных синтаксических элементов в оригинальный язык C.
CVS
CVS был создан для того, чтобы иметь возможность работы с двумя моими студентами над C компилятором ACK (Amsterdam Compiler Kit). У нас троих был почти несовместимый по времени график (один студент имел постоянное место работы, второй появлялся нерегулярно, а я мог работать над проектом только по вечерам). Их проект длился с июля 1984 по август 1985. CVS изначально назывался "cmt", по причине того, что он позволил нам фиксировать версии независимо (от английского "commit" — фиксировать, совершать).
Язык программирования
Конкретный язык программирования в подавляющем большинстве случаев имеет более одного языка-предка. Многие языки создаются как сочетание элементов различных языков. В одних случаях такое сочетание проходит математический анализ на предмет непротиворечивости (см., например, Определение), в других — язык формируется исходя из практических потребностей, для решения актуальных проблем с целью получения коммерческого успеха, но при этом без соблюдения математической строгости и с включением в язык взаимоисключающих идей (как в случае C++).
C++
Имя языка, получившееся в итоге, происходит от оператора унарного постфиксного "инкремента" C codice_4 (увеличение значения переменной на единицу). Имя C+ не было использовано потому, что является синтаксической ошибкой в C и, кроме того, это имя было занято другим языком. Язык также не был назван D, поскольку «"является расширением C и не пытается устранять проблемы путём удаления элементов C"».
Iostream
iostream — заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от Input/Output Stream («поток ввода-вывода»). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки ввода-вывода, вместо этого используется библиотека функций. iostream управляет вводом-выводом, как и stdio.h в Си. iostream использует объекты cin, cout, cerr и clog для передачи информации и из стандартных потоков ввода, вывода, ошибок (без буферизации) и ошибок (с буферизацией) соответственно. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён — std.
CodeView
После выпуска Microsoft Visual C++ 1.0 функциональность CodeView была интегрирована в единую среду программирования, известную как интегрированная среда разработки (IDE), хотя CodeView все ещё был доступен в 16-разрядных версиях Visual C++. QuickC и ряд других инструментов развития также были интегрированы в единую среду программирования. Такая интеграция, по мнению многих разработчиков, является более естественным способом разработки программного обеспечения. Всё может быть сделано без переключения программ или контекста от кодирования и до отладки.
C++
Язык ввёл понятие ссылок, а начиная с одиннадцатой версии стандарта "rvalue"-ссылки и передаваемые ссылки (). (см. Ссылка (C++))
C++/CLI
Доступен в Microsoft Visual Studio начиная с версии 2005.
Препроцессор Си
Начиная с 1970-х годов стали появляться способы, заменившие включение файлов. В языках Java и Common Lisp используются пакеты (ключевое слово codice_40) (см. package в Java), в языке Паскаль — (ключевые слова codice_41 и codice_42), в языках Modula, OCaml, Haskell и Python — модули. В языке D, разработанном для замены языков C и C++, используется ключевые слова codice_43 и codice_44.
C++
C++ заявляется как кроссплатформенный: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. На практике для написания портируемого кода на C++ требуется огромное мастерство и опыт, и «небрежные» коды на C++ с высокой вероятностью могут оказаться непортируемыми. Тонкое владение C++ в принципе может сделать код на C++ столь же портируемым, что и код на Си (хотя, по мнению Линуса Торвальдса, C++ при этом фактически сократится до своего подмножества Си). Однако, критики C++ утверждают, что изучение и использование одновременно всех языков, противопоставляемых C++ (не вызывающих серьёзных проблем при портировании), в сумме требует примерно тех же интеллекта, усилий и временных затрат, что и изучение и использование одного только C++ на высококлассном уровне — в связи с чем становится актуальной также оценка порога вхождения и результативности (производительности и качества труда программистов).
Turbo C
Название «Turbo C» после версии 2.0 не использовалось, потому что с выпуском Turbo C++ 1.0 в 1990 году эти два продукта были объединены. Первый компилятор С++ был разработан по контракту с компанией в Сан-Диего и был одним из первых настоящих компиляторов языка C++ (долгое время большинство компиляторов C++ являлось не самостоятельными компиляторами, а надстройками над компиляторами языка Си). Следующая версия была названа Borland C++, чтобы подчеркнуть свой статус флагманского, и полностью переписана внутри фирмы, с Питером Куколем в качестве ведущего инженера. Наименование Turbo C++, в течение короткого времени не использовавшееся, в конце концов вновь появляется в Turbo C++ 3.0. Продукт версии 2.0 никогда не существовал в серии Turbo C++.
OpenCL
OpenCL 2.1 был представлен 3 марта 2015 года и стандартизирован 16 ноября того же года. В нем было переписано ядро с языка C на C++14.Ключевыми отличиями используемого языка от Си (стандарт ISO 1999 года) являются:
Обобщённое программирование
В языке C++ обобщённое программирование основывается на понятии «шаблон», обозначаемом ключевым словом template. Широко применяется в стандартной библиотеке C++ (см. STL), а также в сторонних библиотеках boost, Loki. Большой вклад в появление развитых средств обобщённого программирования в C++ внёс Александр Степанов.
HTML
Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1986—1991 годах в стенах ЦЕРНа в Женеве в Швейцарии. HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. HTML успешно справлялся с проблемой сложности SGML путём определения небольшого набора структурных и семантических элементов — дескрипторов. Дескрипторы также часто называют «тегами». С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.
Шаблон проектирования
В 1989—1991 годах Джеймс Коплин (James Coplien) трудился над разработкой идиом для программирования на C++ и опубликовал в 1991 году книгу Advanced C++ Idioms.
Clarion (язык программирования)
Язык программирования Clarion был разработан Брюсом Баррингтоном в 1984 г. В своей статье он так описывает историю его создания: «Как это часто бывает, я просто пытался доставить себе удовольствие. Я купил свой первый персональный компьютер, смотрел на него и хотел писать программы для него. Это моя работа. Моим стимулом в работе было убеждение, что программирование должно быть проще, что языки программирования должны облегчать чтение и написание программ и что низкая производительность, связанная с процессом разработки программ, коренится в неадекватных и слабо спроектированных инструментальных средствах программирования». Первоначально проект создавался в рамках компании "HBO & Company", но затем был выкуплен McKesson Corporation
Императивное программирование
Первыми императивными языками были машинные инструкции (коды) — команды, готовые к исполнению компьютером сразу (без каких-либо преобразований). В дальнейшем были созданы ассемблеры, и программы стали записывать на языках ассемблеров. Ассемблер — компьютерная программа, предназначенная для преобразования машинных инструкций, записанных в виде текста на языке, понятном человеку (языке ассемблера), в машинные инструкции в виде, понятном компьютеру (машинный код). Одной инструкции на языке ассемблера соответствовала одна инструкция на машинном языке. Разные компьютеры поддерживали разные наборы инструкций. Программы, записанные для одного компьютера, приходилось заново переписывать для переноса на другой компьютер. Были созданы языки программирования высокого уровня и компиляторы — программы, преобразующие текст с языка программирования на язык машины (машинный код). Одна инструкция языка высокого уровня соответствовала одной или нескольким инструкциям языка машины, и для разных машин эти инструкции были разными. Первым распространённым высокоуровневым языком программирования, получившим применения на практике, стал язык Fortran, разработанный Джоном Бэкусом в 1954 году. Fortran является компилируемым языком программирования, позволяет использовать именованные переменные, составные выражения, подпрограммы и многие другие элементы, распространённые в императивных языках. Для упрощения выражения математических алгоритмов в конце 1950‑х годов был разработан язык Algol. В дальнейшем Algol послужил базой для написания операционных систем для некоторых моделей компьютеров. Языки COBOL (1960 год) и Basic (1964 год) стали первыми языками, разработчики которых пытались сделать языки похожими на английский язык. В 1970-х годах Никлаус Вирт разработал язык Pascal. Денис Ритчи создал язык C. В 1978 году команда разработчиков из фирмы Honeywell начала разработку языка Ada, через четыре года опубликовала требования для его работы; спецификация языка увидела свет в 1983 году, была обновлена в 1995 и 2005-2006 годах.
Высокоуровневый язык программирования
Первым языком программирования высокого уровня считается компьютерный язык Plankalkül, разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 годах. Однако транслятора для него не существовало до 2000 года. Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 (1955 год, 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).
C++
В книге «Дизайн и эволюция C++» Бьёрн Страуструп описывает принципы, которых он придерживался при проектировании C++. Эти принципы объясняют, почему C++ именно такой, какой он есть. Некоторые из них:Стандарт C++ состоит из двух основных частей: описание ядра языка и описание стандартной библиотеки.
Common Intermediate Language
Common Intermediate Language (сокращённо CIL) — «высокоуровневый ассемблер» виртуальной машины .NET. Промежуточный язык, разработанный фирмой «Microsoft» для платформы .NET Framework. JIT-компилятор CIL является частью CLR () — общей среды выполнения программ, написанных на языках .NET. Ранее язык назывался «"Microsoft Intermediate Language" "(MSIL)"», однако был переименован для создания стандарта «ECMA-335».
РГ21 С++
Летом 2016 года РГ21 С++ впервые участвовала во встрече международной рабочей группы WG21 по стандартизации C++. На ней был утвержден черновой вариант C++17 со множеством новых классов, методов и полезных нововведений языка. Следующая подобная встреча состоялась весной 2017 года.
Си (язык программирования)
В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет для разработки стандартной спецификации Си. По окончании этого долгого и сложного процесса в 1989 году он был наконец утверждён как «Язык программирования Си» "ANSI X3.159-1989". Эту версию языка принято называть "ANSI C" или C89. В 1990 году стандарт ANSI C был принят с небольшими изменениями Международной организацией по стандартизации (ISO) как "ISO/IEC 9899:1990".
C++
Разрабатывая "C с классами", Страуструп написал программу  — транслятор, перерабатывающий исходный код "C с классами" в исходный код простого C. Это позволило работать над новым языком и использовать его на практике, применяя уже имеющуюся в UNIX инфраструктуру для разработки на C. Новый язык, неожиданно для автора, приобрёл большую популярность среди коллег и вскоре Страуструп уже не мог лично поддерживать его, отвечая на тысячи вопросов.
C++11
Языки программирования, такие как C++, проходят постепенное развитие своих возможностей. Этот процесс неизбежно вызывает проблемы совместимости с уже существующим кодом. В приложении C.2 [diff.cpp03] документа N3290 () описаны некоторые из несовместимостей C++11 с C++03.
Язык программирования C++ (книга)
Первое издание было выпущено в 1986 году и сейчас представляет только исторический интерес. Второе было опубликовано в 1991 году, а третье — в 1997 году. Улучшенная версия третьего издания, выпущенная в твёрдой обложке, получила название «специального издания» ("special edition") и отличалась от ранних выпусков третьего издания двумя дополнительными приложениями («Локализация» и «Безопасность исключений и стандартная библиотека»), примерно тысячей исправлений и уточнений, а также дополненным алфавитным указателем.
Четвёртое издание книги, которая включает в себя C++11, было выпущено 19 мая 2013.
CCleaner
CCleaner (ранее — Crap Cleaner) — условно-бесплатная утилита с закрытым исходным кодом, которая предоставляет пользователям мощный и простой в использовании инструмент для очистки и оптимизации 32-битных и 64-разрядных операционных систем Microsoft Windows. Утилита была создана британской частной фирмой Piriform Limited и написана на C++.
C++
Непрерывная эволюция языка побуждает (а порой вынуждает) программистов раз за разом изменять уже отлаженный код — это не только удорожает разработку, но и несёт риск внедрения в отлаженный код новых ошибок. В частности, хотя изначально обратная совместимость с Си была одним из базовых принципов C++, с 1999 года Си перестал быть подмножеством C++, так что отлаженный код на Си уже не может использоваться в проекте на C++ без изменений.
Void
Среди современных языков программирования ключевое слово codice_1 впервые появилось в C++ для поддержки концепции обобщенных указателей. Тем не менее, благодаря скорому заимствованию у C++, первым нормативным документом, содержащим это ключевое слово, стал стандарт языка Си, опубликованный ANSI в 1989 г. В рамках языка C++ codice_1 был стандартизован в 1998 г.
C++
В стандарте C++ под классом (class) подразумевается пользовательский тип, объявленный с использованием одного из ключевых слов codice_47, codice_48 или codice_49, под структурой (structure) подразумевается класс, определённый через ключевое слово struct, и под объединением (union) подразумевается класс, определённый через ключевое слово union.
C++
C++ — язык, складывающийся эволюционно. В отличие от языков с формальным определением семантики, каждый элемент C++ заимствовался из других языков отдельно и независимо от остальных элементов (ничто из предложенного C++ за всю историю его развития не было новшеством в Computer Science), что сделало язык чрезвычайно сложным, со множеством дублирующихся и взаимно противоречивых элементов, блоки которых основаны на разных формальных базах. В этом отношении C++ повторяет путь PL/1, но, в отличие от последнего, длительное повсеместное использование C++ обеспечил выбор языка Си в качестве отправной точки.
Язык программирования C++ (книга)
«Язык программирования C++» () — книга, посвящённая C++, которую написал автор языка, Бьёрн Страуструп. Подобно другой книге, «Язык программирования Си», первое издание было написано до выпуска стандарта языка. Третье издание, основанное на стандарте ISO/IEC 14882, даёт всесторонний охват текущих возможностей языка C++ и его стандартной библиотеки. Оно переведено более чем на 20 языков.
Саттер, Герб
Герб Саттер () — известный эксперт по языку C++, автор книг и колумнист в Dr. Dobb's Journal. Начал работать в Microsoft в 2002 году в качестве евангелиста платформы Visual C++ .NET и достиг должности архитектора ПО C++/CLI. В течение 10 лет Герб был организатором и секретарем комитета по стандартизации ISO C++. В последние годы занимался C++/CX и C++ AMP.
Game Maker Language
Game Maker Language (GML) — это интерпретируемый язык программирования, разработанный для использования вместе с программой для разработки компьютерных игр называемой Game Maker. Изначально поддержка языка была внедрена в Game Maker Марком Овермарсом для дополнения системы кнопочных событий, однако позже все кнопочные события были включены в GML, позволяя программисту избежать использования кнопочных функций.
GML очень сильно связан со средой Game Maker. Game Maker организован так, чтобы не было необходимости программирования вручную таких вещей, как управление событиями, дизайн уровней и настройка объектов.
Существует заблуждение, что GML поддерживает вставки фрагментов кода на других языках, таких как Pascal, Assembler или C++. Заблуждение возникло из-за частичной схожести синтаксиса GML с Pascal и C++. (Например, оператор «&&» может быть заменен на «and»).
C++
Некоторые особенности C++ позднее были перенесены в C, например, ключевые слова codice_11 и codice_10, объявления в циклах codice_69 и комментарии в стиле C++ (codice_1). В более поздних реализациях C также были представлены возможности, которых нет в C++, например макросы codice_71 и улучшенная работа с массивами-параметрами.
Dinkumware
Dinkumware предлагает реализацию стандартной библиотеки C++, которая поставляется в комплекте с Microsoft Visual C++ с 1996 года и претендует на статус лидирующего поставщика библиотек C++ и Embedded C++ для сообщества разработчиков программного обеспечения для встраиваемых систем.
C++
Явная поддержка функционального программирования присутствует только в стандарте C++0x, вышедшим лишь после почти 30 лет развития языка. До этого данный пробел устранялся различными библиотеками (Loki, Boost), использующими язык шаблонов для расширения основного языка функциональными конструкциями. Качество подобных решений значительно уступает качеству встроенных в функциональные языки решений и качеству реализаций высокоуровневых возможностей C++ (таких как ООП) посредством функциональных языков. Все реализованные в C++ возможности ФП оказываются лишь их эмуляцией и используются совместно с императивными возможностями, что не даёт возможности применения присущих функциональному программированию мощных оптимизационных методик (см. раздел #Вычислительная эффективность). Кроме того, из-за трудоёмкости использования шаблонов, на практике ФП в C++ обычно ограничивается вызовами функциональных библиотек и реализацией отдельных методов, и практически не даёт преимуществ в проектировании программ (см. Соответствие Карри — Ховарда и пред.пункт), так что оно в C++ по-прежнему осуществляется обычно лишь посредством объектно-ориентированной декомпозиции.
Notepad++
Notepad++ — свободный текстовый редактор с открытым исходным кодом для Windows с подсветкой синтаксиса большого количества языков программирования и разметки, а также языков описания аппаратуры VHDL и Verilog. Поддерживает открытие более 100 форматов. Базируется на компоненте Scintilla, написан на C++ с использованием STL, а также Windows API и распространяется под лицензией GNU General Public License. Базовая функциональность программы может быть расширена как за счёт плагинов, так и сторонних модулей, таких как компиляторы и препроцессоры.
История языков программирования
Первым объектно-ориентированным языком программирования является Симула-67, в котором впервые появились классы. Концепции ООП получили дальнейшее развитие в языке Smalltalk, в котором также были заложены основы систем с оконным управлением. Более поздними примерами объектно-ориентированных языков являются Object Pascal, C++, Java, C# и др.
Си (язык программирования)
Изначально C++ сохранял совместимость с Си, которая была заявлена как одно из преимуществ нового языка. Первые реализации C++ просто переводили новые конструкции в чистый Си, после чего код обрабатывался обычным Си-компилятором. Для сохранения совместимости создатели C++ отказались от исключения из него некоторых часто критикуемых особенностей Си, вместо этого создав новые, «параллельные» механизмы, которые рекомендуется применять при разработке нового кода на C++ (шаблоны вместо макроопределений, явное приведение типов вместо автоматического, контейнеры стандартной библиотеки вместо ручного динамического выделения памяти и так далее). Однако в дальнейшем языки развивались независимо, и сейчас Си и C++ последних выпущенных стандартов являются лишь частично совместимыми: не гарантируется успешная компиляция программы на Си компилятором C++, а в случае успеха нет гарантии, что откомпилированная программа будет работать правильно. Особенно неприятны некоторые тонкие семантические различия, которые могут приводить к разному поведению одного и того же кода, синтаксически корректного для обоих языков. Например, символьные константы (символы, заключённые в одинарные кавычки) имеют тип codice_130 в Си и тип codice_128 в C++, так что объём памяти, занимаемый такими константами, в разных языках различается. Если программа чувствительна к размеру символьной константы, она будет работать по-разному, будучи откомпилирована трансляторами Си и C++.
Cygwin
Работа над проектом Cygwin была начата в 1995 году Стивом Чемберленом (), программистом Cygnus, заметившим, что Windows NT и Windows 95 используют в качестве формата объектных файлов формат COFF. К тому времени в GNU уже была реализована поддержка архитектуры x86, COFF, а также библиотека языка C newlib; таким образом, по крайней мере теоретически, не представляло затруднений получить из GCC кросс-компилятор, который бы создавал исполняемые файлы Windows. Это оказалось несложным и на практике. Вскоре появился прототип.
Алгол 68
Несмотря на неудачу, Алгол 68 повлиял на разработчиков более поздних объектно-ориентированных языков, в частности C++, хотя многие возможности были отброшены, а часть — реализована другими способами. В 1977 году, когда комитет по языку программирования Министерства обороны США пришёл к выводу о необходимости разработки нового языка программирования встроенных систем, по решению комитета, предложения по будущему языку должны были базироваться на одном из языков PL/1, Pascal и Алгол 68. Таким образом, у Алгола-68 был шанс стать прародителем нового универсального языка, но этот шанс не осуществился: из 15 представленных на конкурс проектов все 4, отобранные на второй этап для доработки, были основаны на языке Pascal. После ещё одного этапа доработки лучший из этих проектов стал языком Ада.
Файловый ввод-вывод в языке Си
Потоковая модель файлового ввода-вывода была популяризирована во многом благодаря операционной системе Unix, написанной на языке Си. Большая функциональность современных операционных систем унаследовала потоки от Unix, а многие языки унаследовали интерфейс файлового ввода-вывода языка Си с небольшими отличиями (например, PHP). Стандартная библиотека C++ отражает потоковую концепцию в своём синтаксисе (смотрите iostream).
Язык программирования
Первым практически реализованным языком стал в 1949 году так называемый «Краткий код», в котором операции и переменные кодировались двухсимвольными сочетаниями. Он был разработан в компании Eckert–Mauchly Computer Corporation, выпускавшей UNIVAC-и, созданной одним из сотрудников Тьюринга, Джоном Мокли. Мокли поручил своим сотрудникам разработать транслятор математических формул, однако для 1940-х годов эта цель была слишком амбициозна. Краткий код был реализован с помощью интерпретатора.