Кога е създаден езикът? Адвентик - дигитална агенция с пълно обслужване

C++ е компилиран език за програмиране с общо предназначение, който съчетава свойствата както на езици за програмиране на високо ниво, така и на ниско ниво. В сравнение с неговия предшественик, езика за програмиране C, най-голямо внимание се обръща на поддръжката на обектно-ориентираното и генерично програмиране. Името "език за програмиране C++" идва от езика за програмиране C, в който унарният оператор ++ обозначава нарастването на променлива.

Езикът за програмиране C++ е широко използван за разработка софтуер. А именно създаването на разнообразие от приложни програми, разработка на операционни системи, драйвери за устройства, както и видео игри и много други. Създадена е в началото на 80-те години от Бьорн Страуструп. Той измисли редица подобрения на езика за програмиране C за собствените си нужди. тези. Първоначално не е имало планове за създаване на езика за програмиране C++.

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

Полученото име на език идва от C++ унарния постфиксен оператор за нарастване (увеличаване на стойността на променлива с единица). Името C+ не е използвано, защото е синтактична грешкав C и освен това това име е взето от друг език. Езикът също не беше наречен D, защото „е разширение на C и не се опитва да коригира проблеми чрез премахване на елементи от C“.

Предимства на езика:

1. Мащабируемост. Програмите се разработват в повечето случаи на C++ различни платформии системи.

2. Възможност за работа на ниско ниво с памет, адреси, портове.

3. Възможност за създаване на обобщени алгоритми за различни видоведанни, тяхната специализация и изчисления на етапа на компилиране с помощта на шаблони.

4. Крос-платформа. Компилаторите са налични за голям брой платформи, а програмите се разработват на C++ за голямо разнообразие от платформи и системи.

5. Ефективност. Езикът е предназначен да даде на програмиста максимален контрол върху всички аспекти на структурата на програмата и реда на изпълнение.

Недостатъци на езика:

1. Наличието на много функции, които нарушават принципите за безопасност на типа, води до факта, че фините грешки могат лесно да се промъкнат в C++ програмите.

2. Слаба поддръжка за модулност. Свързването на интерфейса на външен модул чрез вмъкване на предпроцесор на заглавен файл (#include) сериозно забавя компилацията при свързване на голям брой модули.

3. Езикът C++ е труден за научаване и компилиране.

4. Някои преобразувания на типове са неинтуитивни. По-специално, операция върху неподписано и подписано число води до неподписан резултат.

5. Някои хора смятат липсата на вградена система за събиране на отпадъци като недостатък на езика C++. От друга страна, C++ има достатъчно инструменти, за да елиминира почти използването на опасни указатели; няма фундаментални проблеми при внедряването и използването на събирането на отпадъци (на ниво библиотека, не на езиково ниво). Липсата на вградено събиране на отпадъци позволява на потребителя да избере своя собствена стратегия за управление на ресурсите.

Език за програмиране C++

Последна актуализация: 28.08.2017

Езикът за програмиране C++ е компилиран език за програмиране с общо предназначение на високо ниво с статично въвеждане, който е подходящ за създаване на голямо разнообразие от приложения. Днес C++ е един от най-популярните и разпространени езици.

Той има своите корени в езика C, който е разработен през 1969-1973 г. в Bell Labs от програмиста Денис Ричи. В началото на 80-те години датският програмист Bjarne Stroustrup, работещ тогава в Bell Labs, разработи C++ като разширение на езика C. Всъщност в началото C++ просто допълва езика C с някои възможности за обектно-ориентирано програмиране. И затова самият Страуструп първоначално го нарече „C с класове“.

Впоследствие новият език започва да набира популярност. Към него бяха добавени нови функции, които го направиха не просто допълнение към C, а напълно нов език за програмиране. В резултат на това „C с класове“ беше преименуван на C++. И оттогава нататък и двата езика започнаха да се развиват независимо един от друг.

C++ е мощен език, наследяващ богати възможности за памет от C. Следователно C++ често намира своето приложение в системното програмиране, по-специално при създаването на операционни системи, драйвери, различни помощни програми, антивируси и др. Между другото, Windows OS е написана предимно на C++. Но само приложение за системно програмиране на този езикне е ограничено. C++ може да се използва в програми от всяко ниво, където скоростта и производителността са важни. Често се използва за създаване графични приложения, различни приложни програми. Освен това особено често се използва за създаване на игри с богата, богата визуализация. Освен това напоследък мобилното направление набира скорост, където C++ също намери своето приложение. И дори в уеб разработката можете също да използвате C++ за създаване на уеб приложения или някои поддържащи услуги, които обслужват уеб приложения. Като цяло C++ е широко разпространен език, на който можете да създадете почти всякакъв вид програма.

C++ е компилиран език, което означава, че компилаторът превежда източникв C++ в изпълним файл, който съдържа набор от машинни инструкции. Но различните платформи имат свои собствени характеристики, така че компилираните програми не могат просто да бъдат прехвърлени от една платформа на друга и да се изпълняват там. Въпреки това, на ниво изходен код, C++ програмите са до голяма степен преносими, освен ако не се използват някои специфични за ОС функции. А наличието на компилатори, библиотеки и инструменти за разработка за почти всички общи платформи ви позволява да компилирате един и същ изходен код на C++ в приложения за тези платформи.

За разлика от C, езикът C++ ви позволява да пишете приложения в обектно-ориентиран стил, представяйки програма като колекция от класове и обекти, взаимодействащи един с друг. Което опростява създаването на големи приложения.

Основни етапи на развитие

През 1979-80 г. Bjarne Stroustrup разработва разширение на езика C - "C with Classes". През 1983 г. езикът е преименуван на C++.

През 1985 г. излиза първата комерсиална версия на езика C++, както и първото издание на книгата „The C++ Programming Language“, която представлява първото описание на този език при липса на официален стандарт.

Издадена е през 1989 г нова версияЕзик C++ 2.0, който включва редица нови функции. След това езикът се развива относително бавно до 2011 г. Но в същото време през 1998 г. е направен първият опит за стандартизиране на езика от организацията ISO (Международна организация за стандартизация). Първият стандарт се нарича ISO/IEC 14882:1998 или накратко C++98. Впоследствие, през 2003 г., беше публикувана нова версия на стандарта C++03.

През 2011 г. беше публикуван нов стандарт C++11, който съдържа много допълнения и обогати езика C++. Голям бройнова функционалност. След това през 2014 г. беше пуснато малко допълнение към стандарта, известно още като C++14. Друго ключово издание на езика е планирано за 2017 г.

Компилатори и среди за разработка

За да разработвате програми на C++, имате нужда от компилатор - той превежда изходния код на C++ в изпълним файл, който след това можете да стартирате. Но в момента има много различни компилатори. Те могат да се различават в различни аспекти, по-специално в прилагането на стандартите. Основен списък с компилатори за C++ може да се намери в Wikipedia. Препоръчително е за разработка да изберете тези компилатори, които разработват и прилагат всички най-нови стандарти. По този начин в този урок ще използваме основно свободно достъпния g++ компилатор, разработен от проекта GNU.

Можете също да използвате интегрирани среди за създаване на програми Разработка на IDE, като Визуално студио, Netbeans, Eclipse, Qt и др.

C език и UNIX

Програмен език СЪС(да се чете "C") е създаден в началото на 70-те години, когато Кен Томпсън и Денис Ричи от Bell Labs разработиха операционна система UNDC. Първо създадоха компилаторната част СЪС, след което го използва за компилиране на останалата част от компилатора СЪСи накрая използва получения компилатор за компилиране на UNIX. Операционната система UNIX първоначално е била разпространена в изходния код на СЪСмежду университети и лаборатории и получателят може да компилира изходния код на езика СЪСв машинен код с помощта на подходящ компилатор СЪС.

Разпространението на изходния код направи операционната система UNIX уникална; програмистът може да промени операционната система и изходният код може да бъде прехвърлен от една хардуерна платформа на друга. Днес стандартът POSIX дефинира стандартния набор от UNIX системни повиквания, налични в СЪС, които трябва да бъдат внедрени във версии на UNIX, които са POSIX-съвместими. C беше третият език, който Томсън и Ричи разработиха по време на създаването на UNIX; първите две бяха, разбира се, АИ IN.

C мобилен асемблерен език

В сравнение с по-ранния език - BCPL, език СЪСе подобрен чрез добавяне на типове данни със специфични дължини. Например типът данни int може да се използва за създаване на променлива с определен брой битове (обикновено 16), докато типът данни long може да се използва за създаване на цяла променлива с голям брой битове (обикновено 32). За разлика от други езици високо ниво, СЪСможе да работи с адреси на паметта директно, използвайки указатели и препратки. Тъй като СЪСзапази възможността за директен достъп хардуер, той често се класифицира като език от средно ниво или на шега се нарича „език за асемблиране на мобилни устройства“.

C - структуриран език за програмиране

Що се отнася до граматиката и синтаксиса, тогава СЪСе структуриран език за програмиране. Докато много съвременни програмисти мислят от гледна точка на класове и обекти, програмистите СЪСмислете от гледна точка на процедури и функции. IN СЪСМожете да дефинирате свои собствени абстрактни типове данни, като използвате ключовата дума struct. По подобен начин можете да опишете вашите собствени цели числа (изброявания) и да дадете други имена на съществуващи типове данни, като използвате ключова дума typedef В този смисъл СЪСе структуриран език със зародишите на обектно-ориентираното програмиране.

Стандартизация на езика C

Широко разпространен език ° СНа различни видовекомпютри (понякога наричани хардуерни платформи) за съжаление доведе до много вариации на езика. Бяха подобни, но несъвместими един с друг. Това беше основен проблем за разработчиците на софтуер, които трябваше да напишат съвместими програми, които могат да работят на множество платформи. Стана ясно, че е нужна стандартна версия ° С. През 1983г ANSI (Американски национален комитет по стандартизация) формира технически комитет X3J11 за създаване на езиков стандарт ° С(да „осигури недвусмислено и независимо от машината определение на езика“). През 1989 г. стандартът е одобрен. ANSI си партнира с ISO (Международна организация по стандартизация) за стандартизиране ° Смеждународно; съвместен стандарт е публикуван през 1990 г. и е наречен ANSI/ISO 9899:1990. Този стандарт все още се подобрява и се поддържа от повечето компании за разработка на компилатори.

Раждането на C++

Bjarne Stroustrup отприщва обектно-ориентирания потенциал СЪСчрез прехвърляне на способностите на класа Симула 67 V СЪС. Първоначално новият език носеше името "C с класове" и едва след това започна да се нарича C++. език C++постигнал популярност, след като е разработен в Bell Labs, по-късно е прехвърлен в други индустрии и корпорации. Днес това е един от най-популярните (и авторитетни) езици за програмиране в света. C++наследява както добри, така и лоши страни СЪС.

Откровенията на Бярна Страуструп

Бярне Страуструп: „Измислих C++, записа първоначалната си дефиниция и завърши първото изпълнение. Избрах и формулирах критерии за проектиране C++, разработи основните му характеристики и отговаря за съдбата на предложенията за разширяване на езика в комитета по стандартизация C++", пише авторът на най-популярния език за програмиране. - "Езикът C++дължи много на езика ° С, и език ° Состава подмножество Език C++(но C++ поправи няколко сериозни недостатъка в системата от тип C). Спестих и средства ° С, които са на достатъчно ниско ниво, за да се справят с най-критичните системни задачи. език ° С, от своя страна, дължи много на своя предшественик, BCPL; Между другото, стилът на коментар // е взет от C++от BCPL. Друг основен източник на вдъхновение беше езикът Simula67. Концепцията за класове (с производни класове и виртуални функции) е заимствана от него. Средство за претоварване на операторите и възможност за поставяне на съобщения навсякъде, където може да бъде написана инструкция, извиквания Алгол68. "

Защо C++

Име C++изобретен от Рик Масити. Името показва еволюционния характер на прехода към него от ° С. "++" е операция за нарастване в ° С. Малко по-кратко име C+е синтактична грешка; освен това вече е използвано като име на съвсем различен език. Експерти по семантика ° Снамери това C++по-лошо от ++C. Заглавия дезикът не го разбра, защото е разширение на C и не се опитва да излекува проблемите си чрез изхвърляне на различни функции.

Защо беше необходим C++?

Първоначално Език за програмиране C++е проектиран така, че авторът и неговите приятели да не трябва да програмират на асемблер, C или други модерни езици на високо ниво. Основната му цел беше да пише добри програмипо-просто и по-приятно за отделния програмист. План за развитие C++никога не е съществувал на хартия; проектиране, документация и изпълнение се движеха едновременно. Разбира се преден край C++беше написано в C++. Никога не е имало „проект C++“ или „комитет за разработка на C++“. Ето защо C++еволюира и продължава да се развива във всички посоки, за да се справи с предизвикателствата, пред които са изправени потребителите и чрез дискусии между автора и неговите приятели и колеги.

Истински обектно-ориентиран C++

IN Език C++Принципите на обектно-ориентираното програмиране се поддържат напълно, включително трите стълба, върху които стои: капсулиране, наследяване и полиморфизъм. Капсулиране в C++поддържани чрез създаване на нестандартни (персонализирани) типове данни, наречени класове. език C++поддържа наследството. Това означава, че можете да декларирате нов тип данни (клас), който е разширение на съществуващ.

Макар че Език за програмиране C++с право се нарича продължение СЪСи всяка работеща програма на езика СЪСще се поддържа от компилатора C++, при преместване от СЪСДа се C++Беше направен много значителен скок. език C++се възползва от близостта си с езика СЪСв продължение на много години, тъй като много програмисти са открили, че за да се възползват напълно от Език C++, те трябва да изоставят някои от предишните си знания и да придобият нови, а именно: учат нов начинконцептуализация и програмиране на проблеми. Преди да започнете да учите C++, Stroustrup и повечето други програмисти, които използват C++помислете за изучаване на език СЪСпо желание.

Програмен език C++в момента се счита за доминиращия език, използван за разработване на търговски продукти, 90% от игрите са написани на него C++с помощта на DirectX.

Литература

източници:

  • H.M.Deitel, P.J.Deitel „Как да програмираме на C++“
  • Bjarne Stroustrup "Езикът за програмиране C++. 3-то издание."
  • Саймън Робинсън, Оли Корнс, Джей Глин и др. „C# за професионалисти“
  • Джес Либърти „Научете се на C++ за 21 дни“
  • Станислав Горнаков "DirectX, уроци по програмиране на C++"

История на създаването

Езикът възниква в началото на 80-те години на миналия век, когато служителят на Bell Labs Björn Stroustrup предлага редица подобрения на езика C за собствените си нужди. Когато Страуструп започва работа в Bell Labs в края на 70-те години на миналия век върху проблеми в теорията на опашките (както се прилага за моделиране на телефонни разговори), той открива, че опитите да се използват съществуващите тогава езици за моделиране са неефективни и използването на високоефективни машинни езици ​беше твърде трудно за изпълнение поради ограничената им изразителност. По този начин езикът Simula има функции, които биха били много полезни за разработване на голям софтуер, но е твърде бавен, а езикът BCPL е достатъчно бърз, но е твърде близо до езиците на ниско ниво и не е подходящ за разработване на голям софтуер.

Припомняйки опита от своята дисертация, Страуструп решава да допълни езика C (наследник на BCPL) с възможностите, налични в езика Simula. Съществуването на език C основен език UNIX системи, на който работят компютрите Bell, е бърз, богат на функции и преносим. Stroustrup добави възможност за работа с класове и обекти. В резултат на това практическите проблеми с моделирането се оказаха лесни за решаване както по отношение на времето за разработка (благодарение на използването на подобни на Simula класове), така и по отношение на времето за изчисление (благодарение на скоростта на C). На първо място, към C бяха добавени класове (с капсулиране), наследяване на класове, силна проверка на типа, вградени функции и аргументи по подразбиране. Ранните версии на езика, първоначално наречени „C с класове“, станаха достъпни през 1980 г.

Докато разработва C с класове, Страуструп написва програма, наречена cfront, преводач, който преобразува изходния код на C с класове в обикновен изходен код на C. Това му позволява да работи върху новия език и да го използва на практика, използвайки вече наличната инфраструктура в UNIX за развитие на C. Нов език, неочаквано за автора, добива голяма популярност сред колегите му и скоро Страуструп вече не може лично да го подкрепя, отговаряйки на хиляди въпроси.

Когато създава C++, Бьорн Страуструп иска
  • Вземете универсален език с статични типоведанни, ефективност и преносимост на езика C.
  • Директно и цялостно поддържа различни стилове на програмиране, включително процедурно програмиране, абстракция на данни, обектно-ориентирано програмиране и общо програмиране.
  • Дайте на програмиста свобода на избор, дори ако това му дава възможност да избере грешно.
  • Поддържайте възможно най-голяма съвместимост със C, като по този начин правите възможен лесен преход от C програмиране.
  • Избягвайте несъответствия между C и C++: всяка конструкция, която е валидна и на двата езика, трябва да означава едно и също нещо във всеки от тях и да води до едно и също поведение на програмата.
  • Избягвайте функции, които зависят от платформата или не са универсални.
  • „Не плащайте за това, което не използвате“ — никоя езикова функция не трябва да причинява влошаване на производителността на програми, които не я използват.
  • Не изисквайте прекалено сложна среда за програмиране.

Изборът на C като основа за създаване на нов език за програмиране се обяснява с факта, че езикът C:

1. е многофункционален, кратък и сравнително ниско ниво на език;
2. подходящ за решаване на повечето системни проблеми;
3. извършва се навсякъде и върху всичко;
4. интерфейси със средата за програмиране UNIX.

— Б. Страуструп. Език за програмиране C++. Раздел 1.6

Въпреки редица известни недостатъци на езика C, Straustrup реши да го използва като основа, тъй като „C има своите проблеми, но език, разработен от нулата, би ги имал, а ние знаем проблемите на C.“ В допълнение, това направи възможно бързото получаване на прототипен компилатор (cfront), който само преведе добавените синтактични елементи на оригиналния език C.

С развитието на C++ бяха включени други функции, които покриваха възможностите на C конструкциите и следователно въпросът за изоставяне на езиковата съвместимост чрез премахване на остарели конструкции беше многократно повдиган. Въпреки това, съвместимостта е запазена поради следните причини:

  • запазване текущ код, първоначално написан на C и директно пренесен на C++;
  • елиминиране на необходимостта от преквалификация на програмисти, които преди това са учили C (те трябва само да научат нови C++ инструменти);
  • премахване на объркването между езиците, когато споделяне(„ако два езика се използват заедно, разликите им трябва да са минимални или толкова големи, че да е невъзможно да се объркат езиците“).

До 1983 г. към езика бяха добавени нови функции, като виртуални функции, претоварване на функции и оператори, препратки, константи, потребителски контрол върху контрола свободна памет, подобрена проверка на типа и нов стилкоментари (//). Полученият език вече не беше просто разширена версия на класическия C и беше преименуван от C с класове на „C++“. Първото му комерсиално издание се състоя през октомври 1985 г.

Полученото име на език идва от C++ унарния постфиксен оператор за нарастване (увеличаване на стойността на променлива с единица).

Преди да започне официалната стандартизация, езикът е разработен главно от Stroustrup в отговор на искания от общността на програмистите. Функцията на стандартни езикови описания е изпълнявана от написаните от Страуструп печатни произведенияна C++ (описание на езика, справочно ръководство и др.).

История на стандартите

През 1985 г. е публикувано първото издание на The C++ Programming Language, предоставящо първото описание на езика, което е изключително важно поради липсата на официален стандарт.


През 1989 г. беше пуснат C++ версия 2.0. Неговите нови функции включват множествено наследяване, абстрактни класове, статични членски функции, постоянни функции и защитени членове. През 1990 г. е публикувано “Анотираното справочно ръководство за C++”, което по-късно става основата на стандарта. Последни актуализациивключени шаблони, изключения, пространства от имена, нови типове кастинг и булев тип.

Стандартната библиотека на C++ също се разви с него. Първото допълнение към стандартната библиотека на C++ бяха I/O потоци, които предоставят средство за замяна на традиционните C printf и scanf функции. По-късно най-значимото развитие на стандартната библиотека беше включването на библиотеката със стандартни шаблони.

През 1998 г. е публикуван езиковият стандарт ISO/IEC 14882:1998 (известен като C++98), разработен от Комитета за стандарти на C++ (работна група ISO/IEC JTC1/SC22/WG21). Стандартът C++ не описва как се именуват обектите, някои подробности за обработката на изключения и други детайлни функции за изпълнение, което прави обектния код, създаден от различни компилатори, несъвместим. Въпреки това, много стандарти са създадени от трети страни за конкретни архитектури и операционни системи.

През 2005 г. беше издаден Технически доклад на библиотеката 1 (съкратено като TR1). Въпреки че не е официално част от стандарта, докладът описва разширения към стандартната библиотека, които авторите очакват да бъдат включени в следващата версия на езика C++. Поддръжката на TR1 се подобрява в почти всички поддържани C++ компилатори.

От 2009 г. се работи за актуализиране на предишния стандарт, като предварителната версия на новия стандарт беше първо C++09, а година по-късно C++0x, днес C++11, който включваше допълнения към ядрото на езика и разширяване на стандартната библиотека, включително включително повечето от TR1.

C++ продължава да се развива, за да отговори на днешните изисквания. Една от групите, които разработват езика C++ и представят предложения за подобряването му на Комитета по стандартите на C++, е Boost, която се занимава, наред с други неща, с подобряването на възможностите на езика чрез добавяне на функции за метапрограмиране към него.

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

Когато репутацията ви работи за вашата печалба

Управление на общността

Създаване на тон на гласа. Бърза обработка както на негативни, така и на позитивни коментари от името на марката. Управление на комуникацията според зададени сценарии. Превод на проблемни въпроси на клиента.

Агенти на влияние

Създаване и внедряване на „виртуални“ във форуми и в в социалните мрежи. Има база данни с надстроени и активни акаунти на повече от 300 сайта.

Работа с рецензии

Писане, координиране и публикуване на рецензии за марката в топ платформи и сайтове за рецензии. Обработка и покриване на негативни коментари с позитивни. В резултат на това негативността постепенно се изтласква от резултатите от търсенето.

Мониторинг на социални медии

Работа със системите Youscan, IQbuzz, Brand Analytics. Контрол на споменаването на марката. Идентифициране на ключови прозрения и своевременно реагиране на негативността. Незаменим инструмент за контрол обратна връзкаот клиенти.

Анализи и проучвания

Анализ на информационното поле, проучване на продуктовата категория и основните конкуренти на марката. Този инструмент обхваща задачи от мониторинг на репутацията и маркетинг в реално време до задълбочени изследвания.

SERM

Детайлен анализ на резултатите от търсенето по избрани ключови думи. Събиране на референции за клиента в социални мрежи, форуми и новинарски сайтове. Разработване на стратегия за справяне с негативна информация. Клиентът получава напълно контролирана доставка в ТОП10.



Зареждане...
Връх