SlideShare a Scribd company logo
1 of 7
Download to read offline
Программирование на языке C++
Лекция 1
История языка C++
Александр Смаль
1/7
Язык C
∙ Язык программирования C++ создан на основе языка C.
∙ Язык программирования C разработан в начале 1973 года в
компании Bell Labs Кеном Томпсоном и Деннисом Ритчи.
∙ Язык C был создан для использования в операционной
системе UNIX.
∙ В связи с успехом UNIX язык C получил широкое
распространение.
∙ На данный момент C является одним из самых
распространённых языков программирования
(доступен на большинстве платформ).
∙ C — основной язык для низкоуровневой разработки.
2/7
Особенности C
∙ Эффективность.
Язык С позволяет писать программы, которые напрямую
работают с железом.
∙ Стандартизированность.
Спецификация языка C является международным
стандартом.
∙ Относительная простота.
Стандарт языка C занимает 230 страниц
(против 670 для Java и 1340 для C++).
3/7
Создание C++
∙ Разрабатывается с начала 1980-х годов.
∙ Создатель — сотрудник Bell Labs Бьёрн Страуструп.
∙ Изначально это было расширение языка C для поддержки
работы с классами и объектами.
∙ Это позволило проектировать программы на более
высоком уровне абстракции.
∙ Ранние версии языка назывались “C with classes”.
∙ Первый компилятор cfront, перерабатывающий исходный
код “C с классами” в исходный код на C.
4/7
Развитие C++
∙ К 1983 году в язык было добавлено много новых
возможностей (виртуальные функции, перегрузка функций
и операторов, ссылки, константы, . . . )
∙ Получившийся язык перестал быть просто дополненной
версией классического C и был переименован из “C с
классами” в C++.
∙ Имя языка, получившееся в итоге, происходит от
оператора унарного постфиксного инкремента C ’++’
(увеличение значения переменной на единицу).
∙ Язык также не был назван D, поскольку “является
расширением C и не пытается устранять проблемы путём
удаления элементов C”.
∙ Язык начинает активно развиваться. Появляются новые
компиляторы и среды разработки. 5/7
Стандартизация C++
∙ Лишь в 1998 году был ратифицирован международный
стандарт языка C++: ISO/IEC 14882:1998 “Standard for the
C++ Programming Language”.
∙ В 2003 году был опубликован стандарт языка ISO/IEC
14882:2003, где были исправлены выявленные ошибки и
недочёты предыдущей версии стандарта.
∙ В 2005 году был выпущен Library Technical Report 1 (TR1).
∙ С 2005 года началась работа над новой версией стандарта,
которая получила кодовое название C++0x.
∙ В конце концов в 2011 году стандарт был принят и
получил название C++11 ISO/IEC 14882:2011.
∙ В данный момент ведётся одновременная работа над
двумя версиями стандарта: C++14 и C++17.
6/7
Совместимость C и C++
∙ Один из принципов разработки стандарта C++ — это
сохранение совместимости с C.
∙ Синтаксис C++ унаследован от языка C.
∙ C++ не является в строгом смысле надмножеством C.
∙ Можно писать программы на C так, чтобы они успешно
компилировались на C++.
∙ C и C++ сильно отличаются как по сложности, так и по
принятым архитектурным решениям, которые
используются в обоих языках.
7/7

More Related Content

What's hot

Lala qasanzade 9r2 c++
Lala qasanzade 9r2  c++Lala qasanzade 9r2  c++
Lala qasanzade 9r2 c++lala9r2
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеYakubovichDA
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.YakubovichDA
 
Подключение внешних библиотек в python
Подключение внешних библиотек в pythonПодключение внешних библиотек в python
Подключение внешних библиотек в pythonMaxim Shalamov
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#Nitrosalat
 
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...Provectus
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Anthony Marchenko
 
1. видеоуроки по php
1. видеоуроки по php1. видеоуроки по php
1. видеоуроки по phpnewbieseo
 
дипломная презентация по разработке проекта развертывания терминального сервера
дипломная презентация по разработке проекта развертывания терминального серверадипломная презентация по разработке проекта развертывания терминального сервера
дипломная презентация по разработке проекта развертывания терминального сервераIvan Simanov
 
Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3it-people
 
Библиотека bem-components — Ангелина Сидорцова, Яндекс
Библиотека bem-components  — Ангелина Сидорцова, ЯндексБиблиотека bem-components  — Ангелина Сидорцова, Яндекс
Библиотека bem-components — Ангелина Сидорцова, ЯндексYandex
 
Php unit тесты с codeception
Php unit тесты с codeceptionPhp unit тесты с codeception
Php unit тесты с codeceptionVladislav Alexeyev
 
C++ осень 2013 лекция 1
C++ осень 2013 лекция 1C++ осень 2013 лекция 1
C++ осень 2013 лекция 1Technopark
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...yaevents
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
 

What's hot (20)

OO Design with C++: 0. Intro
OO Design with C++: 0. IntroOO Design with C++: 0. Intro
OO Design with C++: 0. Intro
 
Lala qasanzade 9r2 c++
Lala qasanzade 9r2  c++Lala qasanzade 9r2  c++
Lala qasanzade 9r2 c++
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
лекция №1
лекция №1лекция №1
лекция №1
 
Подключение внешних библиотек в python
Подключение внешних библиотек в pythonПодключение внешних библиотек в python
Подключение внешних библиотек в python
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#
 
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
 
лр11
лр11лр11
лр11
 
1. видеоуроки по php
1. видеоуроки по php1. видеоуроки по php
1. видеоуроки по php
 
дипломная презентация по разработке проекта развертывания терминального сервера
дипломная презентация по разработке проекта развертывания терминального серверадипломная презентация по разработке проекта развертывания терминального сервера
дипломная презентация по разработке проекта развертывания терминального сервера
 
лекция 17
лекция 17лекция 17
лекция 17
 
Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3
 
Библиотека bem-components — Ангелина Сидорцова, Яндекс
Библиотека bem-components  — Ангелина Сидорцова, ЯндексБиблиотека bem-components  — Ангелина Сидорцова, Яндекс
Библиотека bem-components — Ангелина Сидорцова, Яндекс
 
Php unit тесты с codeception
Php unit тесты с codeceptionPhp unit тесты с codeception
Php unit тесты с codeception
 
C++ осень 2013 лекция 1
C++ осень 2013 лекция 1C++ осень 2013 лекция 1
C++ осень 2013 лекция 1
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
 
лр8 решения
лр8 решениялр8 решения
лр8 решения
 

Viewers also liked

WICKED - Working with the data rich
WICKED - Working with the data richWICKED - Working with the data rich
WICKED - Working with the data richDavid Wallom
 
Enterprise DevOps fact or fiction - DevOps Summit 2014
Enterprise DevOps fact or fiction - DevOps Summit 2014Enterprise DevOps fact or fiction - DevOps Summit 2014
Enterprise DevOps fact or fiction - DevOps Summit 2014Chris Riley ☁
 
Программирование: теоремы и задачи
Программирование: теоремы и задачиПрограммирование: теоремы и задачи
Программирование: теоремы и задачиDEVTYPE
 
Разбор задач пятого модуля
Разбор задач пятого модуляРазбор задач пятого модуля
Разбор задач пятого модуляDEVTYPE
 
Gemas e Joias - Governo Estado da Bahia-Brasil
Gemas e Joias - Governo Estado da Bahia-BrasilGemas e Joias - Governo Estado da Bahia-Brasil
Gemas e Joias - Governo Estado da Bahia-BrasilMATANO STONES BRAZIL
 
Mos Burger Final Presentation
Mos Burger Final PresentationMos Burger Final Presentation
Mos Burger Final Presentationirishsiao
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 

Viewers also liked (10)

WICKED - Working with the data rich
WICKED - Working with the data richWICKED - Working with the data rich
WICKED - Working with the data rich
 
Enterprise DevOps fact or fiction - DevOps Summit 2014
Enterprise DevOps fact or fiction - DevOps Summit 2014Enterprise DevOps fact or fiction - DevOps Summit 2014
Enterprise DevOps fact or fiction - DevOps Summit 2014
 
Bfma
BfmaBfma
Bfma
 
Initiative Outdoor - A Brief
Initiative Outdoor - A Brief Initiative Outdoor - A Brief
Initiative Outdoor - A Brief
 
Программирование: теоремы и задачи
Программирование: теоремы и задачиПрограммирование: теоремы и задачи
Программирование: теоремы и задачи
 
Разбор задач пятого модуля
Разбор задач пятого модуляРазбор задач пятого модуля
Разбор задач пятого модуля
 
Gemas e Joias - Governo Estado da Bahia-Brasil
Gemas e Joias - Governo Estado da Bahia-BrasilGemas e Joias - Governo Estado da Bahia-Brasil
Gemas e Joias - Governo Estado da Bahia-Brasil
 
Mos Burger Final Presentation
Mos Burger Final PresentationMos Burger Final Presentation
Mos Burger Final Presentation
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
Was uns wirklich nährt
Was uns wirklich nährtWas uns wirklich nährt
Was uns wirklich nährt
 

Similar to История языка C++

Orxan9r2 c++
Orxan9r2 c++Orxan9r2 c++
Orxan9r2 c++orxan9r2
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C language lect_01_preface
C language lect_01_prefaceC language lect_01_preface
C language lect_01_prefaceRoman Brovko
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in russuser0562f1
 
Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++ssuser0562f1
 
Programming history. Algorithm
Programming history. AlgorithmProgramming history. Algorithm
Programming history. AlgorithmIhor Porotikov
 
Mixing c++ and python
Mixing c++ and pythonMixing c++ and python
Mixing c++ and pythoncorehard_by
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияPlatonov Sergey
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Dima Dzuba
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Nikita Baksalyar
 
История программирования
История программированияИстория программирования
История программированияAndrey1245
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.Igor Shkulipa
 
презентация языки программирования
презентация языки программированияпрезентация языки программирования
презентация языки программированияnhfkzkz
 
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...IT Share
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинIT61
 

Similar to История языка C++ (20)

Orxan9r2 c++
Orxan9r2 c++Orxan9r2 c++
Orxan9r2 c++
 
378 васильев куницын
378 васильев куницын378 васильев куницын
378 васильев куницын
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C language lect_01_preface
C language lect_01_prefaceC language lect_01_preface
C language lect_01_preface
 
C++
C++C++
C++
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in ru
 
Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++
 
Programming history. Algorithm
Programming history. AlgorithmProgramming history. Algorithm
Programming history. Algorithm
 
Mixing c++ and python
Mixing c++ and pythonMixing c++ and python
Mixing c++ and python
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализация
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 
GeoGebra-1
GeoGebra-1GeoGebra-1
GeoGebra-1
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016
 
История программирования
История программированияИстория программирования
История программирования
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
 
презентация языки программирования
презентация языки программированияпрезентация языки программирования
презентация языки программирования
 
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...Никита Вельмаскин -  Интерпретатор или думаем над скриптовым движком для Ваше...
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
 

More from DEVTYPE

Рукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреРукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреDEVTYPE
 
1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойстваDEVTYPE
 
1.3 Описательная статистика
1.3 Описательная статистика1.3 Описательная статистика
1.3 Описательная статистикаDEVTYPE
 
1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространствоDEVTYPE
 
Continuity and Uniform Continuity
Continuity and Uniform ContinuityContinuity and Uniform Continuity
Continuity and Uniform ContinuityDEVTYPE
 
Coin Change Problem
Coin Change ProblemCoin Change Problem
Coin Change ProblemDEVTYPE
 
Recurrences
RecurrencesRecurrences
RecurrencesDEVTYPE
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применениеDEVTYPE
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыDEVTYPE
 
ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ DEVTYPE
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функцийDEVTYPE
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of FunctionsDEVTYPE
 
Кучи
КучиКучи
КучиDEVTYPE
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование ХаффманаDEVTYPE
 
Жадные алгоритмы: введение
Жадные алгоритмы: введениеЖадные алгоритмы: введение
Жадные алгоритмы: введениеDEVTYPE
 
Разбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиРазбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиDEVTYPE
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"DEVTYPE
 
Наибольший общий делитель
Наибольший общий делительНаибольший общий делитель
Наибольший общий делительDEVTYPE
 
Числа Фибоначчи
Числа ФибоначчиЧисла Фибоначчи
Числа ФибоначчиDEVTYPE
 
О-символика
О-символикаО-символика
О-символикаDEVTYPE
 

More from DEVTYPE (20)

Рукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреРукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебре
 
1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства
 
1.3 Описательная статистика
1.3 Описательная статистика1.3 Описательная статистика
1.3 Описательная статистика
 
1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство
 
Continuity and Uniform Continuity
Continuity and Uniform ContinuityContinuity and Uniform Continuity
Continuity and Uniform Continuity
 
Coin Change Problem
Coin Change ProblemCoin Change Problem
Coin Change Problem
 
Recurrences
RecurrencesRecurrences
Recurrences
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применение
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
 
ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of Functions
 
Кучи
КучиКучи
Кучи
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование Хаффмана
 
Жадные алгоритмы: введение
Жадные алгоритмы: введениеЖадные алгоритмы: введение
Жадные алгоритмы: введение
 
Разбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиРазбор задач по дискретной вероятности
Разбор задач по дискретной вероятности
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"
 
Наибольший общий делитель
Наибольший общий делительНаибольший общий делитель
Наибольший общий делитель
 
Числа Фибоначчи
Числа ФибоначчиЧисла Фибоначчи
Числа Фибоначчи
 
О-символика
О-символикаО-символика
О-символика
 

История языка C++

  • 1. Программирование на языке C++ Лекция 1 История языка C++ Александр Смаль 1/7
  • 2. Язык C ∙ Язык программирования C++ создан на основе языка C. ∙ Язык программирования C разработан в начале 1973 года в компании Bell Labs Кеном Томпсоном и Деннисом Ритчи. ∙ Язык C был создан для использования в операционной системе UNIX. ∙ В связи с успехом UNIX язык C получил широкое распространение. ∙ На данный момент C является одним из самых распространённых языков программирования (доступен на большинстве платформ). ∙ C — основной язык для низкоуровневой разработки. 2/7
  • 3. Особенности C ∙ Эффективность. Язык С позволяет писать программы, которые напрямую работают с железом. ∙ Стандартизированность. Спецификация языка C является международным стандартом. ∙ Относительная простота. Стандарт языка C занимает 230 страниц (против 670 для Java и 1340 для C++). 3/7
  • 4. Создание C++ ∙ Разрабатывается с начала 1980-х годов. ∙ Создатель — сотрудник Bell Labs Бьёрн Страуструп. ∙ Изначально это было расширение языка C для поддержки работы с классами и объектами. ∙ Это позволило проектировать программы на более высоком уровне абстракции. ∙ Ранние версии языка назывались “C with classes”. ∙ Первый компилятор cfront, перерабатывающий исходный код “C с классами” в исходный код на C. 4/7
  • 5. Развитие C++ ∙ К 1983 году в язык было добавлено много новых возможностей (виртуальные функции, перегрузка функций и операторов, ссылки, константы, . . . ) ∙ Получившийся язык перестал быть просто дополненной версией классического C и был переименован из “C с классами” в C++. ∙ Имя языка, получившееся в итоге, происходит от оператора унарного постфиксного инкремента C ’++’ (увеличение значения переменной на единицу). ∙ Язык также не был назван D, поскольку “является расширением C и не пытается устранять проблемы путём удаления элементов C”. ∙ Язык начинает активно развиваться. Появляются новые компиляторы и среды разработки. 5/7
  • 6. Стандартизация C++ ∙ Лишь в 1998 году был ратифицирован международный стандарт языка C++: ISO/IEC 14882:1998 “Standard for the C++ Programming Language”. ∙ В 2003 году был опубликован стандарт языка ISO/IEC 14882:2003, где были исправлены выявленные ошибки и недочёты предыдущей версии стандарта. ∙ В 2005 году был выпущен Library Technical Report 1 (TR1). ∙ С 2005 года началась работа над новой версией стандарта, которая получила кодовое название C++0x. ∙ В конце концов в 2011 году стандарт был принят и получил название C++11 ISO/IEC 14882:2011. ∙ В данный момент ведётся одновременная работа над двумя версиями стандарта: C++14 и C++17. 6/7
  • 7. Совместимость C и C++ ∙ Один из принципов разработки стандарта C++ — это сохранение совместимости с C. ∙ Синтаксис C++ унаследован от языка C. ∙ C++ не является в строгом смысле надмножеством C. ∙ Можно писать программы на C так, чтобы они успешно компилировались на C++. ∙ C и C++ сильно отличаются как по сложности, так и по принятым архитектурным решениям, которые используются в обоих языках. 7/7