Езиково развитие c. §1 Обща информация за езика

Езиково развитие c.  §1 Обща информация за езика
Езиково развитие c. §1 Обща информация за езика

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 език и 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++

Bjorn 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++“
  • Бьорн Страуструп "Езикът за програмиране C++. 3-то издание."
  • Саймън Робинсън, Оли Корнс, Джей Глин и други „C# за професионалисти“
  • Джес Либърти „Научете се на C++ за 21 дни“
  • Станислав Горнаков "Уроци по програмиране DirectX, C++"

Тагове: История на C, ANSI C, ISO C, C99, C11, ISO/IEC C, C стандартизация.

произход

C и е „допълнителен продукт“ от създаването на операционната система UNIX, която е разработена в Bell Laboratories от Ken Thompson, Denis Ritchie and co. Томпсън сам написа оригиналната версия на UNIX, която работеше на DEC PDP-7, един от първите миникомпютри със само 8K думи основна памет (все пак беше 1969 г.).

Подобно на други операционни системи на деня, UNIX е написана на асемблер. Отстраняването на грешки в програми на асемблерни езици е истинска болка и трудно за подобряване и UNIX не беше изключение. Томпсън реши, че е необходим език от високо ниво за по-нататъшното развитие на операционната система и излезе с малък език B. Томпсън взе езика BCPL, език за системно програмиранеразработена в средата на 60-те години. BCPL, от своя страна, произхожда от Algol 60, един от най-ранните (и най-влиятелни) езици.

Ричи скоро се присъединява към проекта UNIX и започва да пише на B. През 1970 г. Bell Labs закупува PDP-11 за проекта. Тъй като B беше готов да работи на PDP-11, Томпсън пренаписа част от UNIX на B. През 1971 г. стана ясно, че B не е съвсем подходящ за PDP-11, така че Ричи започна да създава разширена версия на B. Той първо го нарече NB (Нов B), но когато езикът стана много различен от B, името беше променено на C. До 1973 г. езикът беше достатъчно стабилен, за да може UNIX да бъде пренаписан на него. Преминаването към C осигури важно предимство: преносимост. Като напише C компилатор за всяка от машините в Bell Labs, екипът за разработка може да пренесе UNIX към тях.

Стандартизация

C продължава да се развива през 70-те години, особено между 1977 и 1979 г., когато е публикувана първата книга за C. Езикът за програмиране C, написан от Brian Kernighan и Denis Ritchie и публикуван през 1978 г., се превръща в библията на C програмистите. При липсата на официален стандарт, тази книга - известна още като K&R или "Бялата книга", както обичат да я наричат ​​феновете на C - се превърна в стандарт де факто. През 70-те години имаше малко C програмисти и повечето от тях бяха потребители на UNIX. Въпреки това, през 80-те години C излиза извън тесните граници на света на UNIX. C компилаторите станаха достъпни на различни машини, работещи с различни операционни системи. По-специално C започна да се разпространява на бързо развиващата се платформа IBM PC.

Заедно с повишаването на популярността дойдоха и проблеми. Програмистите, които написаха нови компилатори, взеха за основа езика, описан в K&R. За съжаление в K&R някои характеристики на езика бяха описани неясно, така че компилаторите често ги интерпретираха по свое усмотрение. Освен това книгата не прави ясно разграничение между това, което е характеристика на езика и това, което е характеристика на операционната система UNIX. За да влошат нещата, след публикуването на K&R, C продължи да се развива: към него бяха добавени нови функции и старите бяха изрязани от него. Скоро имаше очевидна нужда от изчерпателно, точно и актуално описание на езика. Без такъв стандарт започнаха да се появяват диалекти на езика, които пречеха на преносимостта, най-силната страна на езика.

Разработването на американския стандарт C започва през 1983 г. под егидата на Американския национален институт по стандартизация (ANSI). След много ревизии стандартът беше завършен през 1988 г. и официално приет през декември 1989 г. като ANSI X3.159-1989. През 1990 г. той е одобрен от Международната организация по стандартизация (ISO) като международен стандарт ISO/IEC 9899:1990. Тази версия на езика обикновено се нарича C89 или C90, за да се избегне объркване с оригиналната версия на C, обикновено наричана K&R C.

Езикът претърпя незначителни промени през 1995 г. (промените са описани в документ, обикновено наричан Изменение 1). По-значителни промени настъпиха през 1999 г., когато беше публикуван стандартът ISO/IEC 9899:1999. Езикът, описан в този стандарт, обикновено се нарича C99. Термините "ANSI C", "ANSI/ISO C" и "ISO C", използвани някога за описание на C99, са двусмислени поради съществуването на два стандарта.

През 2011 г., заедно с преразглеждането на езика C++, беше пуснат стандартът C11. Въпреки наличието на стандарт 11, много компилатори все още не поддържат напълно дори версиите C99, така че използването на стандарта C11 ще бъде изрично посочено.

C++ (произнася се c-plus-plus) е компилиран, статично типизиран език за програмиране с общо предназначение, който може да се използва за създаване на програми от всякакво ниво на сложност.
Повече от 20 години този език е сред първите три най-популярни и търсени езици за програмиране. (Това може да се провери, като посетите уебсайта на TIOBE).
Езикът възниква в началото на 80-те години на миналия век, когато служителят на Bell Labs Björn Stroustrup предлага редица подобрения на езика C за собствените си нужди.

Bjarne Stroustrup - създател на езика C++

Straustrup реши да разшири езика C с функциите, налични в езика Simula. Езикът C, като базов езикСистемата UNIX, на която работят компютрите Bell, е бърза, богата на функции и преносима. Stroustrup добави към него възможността за работа с класове и обекти. В резултат на това практическите задачи за моделиране се оказаха достъпни както по отношение на времето за разработка (поради използването на подобни на Simula класове), така и по отношение на времето за изчисление (поради скоростта на C).
Ето как го казва самият разработчик на езика:



През 1998 г. първият езиков стандарт, известен като C++98, беше публикуван от комитет по стандартизация. C++ продължава да се развива, за да отговори на съвременните изисквания. Една от групите, които разработват езика C++ и изпращат предложения до комитета по стандартизация на C++ за подобряването му, е Увеличете, който се занимава, наред с други неща, с подобряване на възможностите на езика чрез добавяне на функции за метапрограмиране към него. Последният стандарт е пуснат през 2017 г. и се нарича C++17. Следващият стандарт няма да закъснее и се очаква да се появи през 2020 г.
Никой не притежава правата върху езика C++, той е безплатен. През март 2016 г. Русия създаде работна група WG21 C++. Групата беше организирана, за да събира предложения за стандарта C++, да ги представя на комисията и да ги защитава на общи събрания на Международната организация по стандартизация.
C++ е многопарадигмен език (от думата paradigm - стил на писане компютърни програми), който включва широк набор от различни стилове и технологии за програмиране. Често се нарича обектно-ориентиран език, но, строго погледнато, това не е така. В процеса на работа разработчикът получава абсолютна свобода при избора на инструменти, така че проблемът, решен с помощта на един или друг подход, да бъде решен възможно най-ефективно. С други думи, C++ не принуждава програмиста да се придържа само към един стил на разработка на програма (например обектно-ориентиран).
C++ има богата стандартна библиотека, която включва общи контейнери и алгоритми, I/O, регулярни изрази, многонишкова поддръжка и др. C++ е повлиял на много езици за програмиране, включително: Java, C#, D. Тъй като C++ принадлежи към семейство езици, базирани на синтаксиса на езика C, други езици за програмиране от това семейство могат лесно да бъдат усвоени: JavaScript , PHP, Perl, Objective-C и много други. и т.н., включително самия език-майка - C. ()
По време на неговото съществуване в езика C ++ са се утвърдили стабилни митове, които лесно се опровергават (вижте тук: Част 1 и Част 2)

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

1983

Създател на езика - Бьорн Страуструп, в Bell Labs, представи ранна версия на C++ („C с класове“)

1985

Първо търговско издание на C++, езикът приема модерно име

1986

Издаване на първото издание на The C++ Programming Language, книга за C++, написана от Bjorn Stroustrup

1998

Ратифициран е международният езиков стандарт C++: ISO/IEC 14882:1998 „Стандарт за езика за програмиране C++“

2003
2005

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

2011

Пускане на нов стандарт - C++11 или ISO/IEC 14882:2011; нов стандартвключва допълнения към ядрото на езика и разширение към стандартната библиотека, включително голяма част от TR1

2014

Пускане на стандарта C++14 („Международен стандарт ISO/IEC 14882:2014(E) език за програмиране C++”); C++14 може да се разглежда като малко разширение на C++11, съдържащо предимно корекции на грешки и незначителни подобрения.

2017

Изданието на новия стандарт е C++1z (C++17). Този стандарт е направил много промени и допълнения. Например STD включва стандартни библиотеки C11, файлова система, базиран на boost::filesystem, голяма част от експерименталната TS I библиотека.

2020

C++20 е неофициалното име на стандарта ISO/IEC за езика за програмиране C++, който се очаква след C++17. Проект на стандарт N4800.

Философия C++

В The Design and Evolution of C++ (2007), Bjorn Stroustrup описва принципите, които е следвал при проектирането на C++ (дадени в съкратена форма):

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

C и C++

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

Програма 9.1

#включи int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); return 0; )

Това се дължи на факта, че символните константи в C са от тип int, а в C++ са от тип char, но размерите на тези типове се различават.

Модели на жизнения цикъл на приложението

Жизнен цикълсофтуерът е период от време, който започва от момента на вземане на решение за необходимостта от създаване на софтуерен продукт и завършва в момента на пълното му изтегляне от експлоатация. Този цикъл е процесът на изграждане и разработване на софтуер (SW). Има няколко модела на жизнения цикъл.
Каскаден моделжизнен цикъл (английски водопаден модел) е предложен през 1970 г. от Уинстън Ройс. Той предвижда последователно изпълнение на всички етапи на проекта в строго фиксиран ред. Преходът към следващия етап означава пълно завършване на работата на предишния етап. Изискванията, определени на етапа на формиране на изискванията, са строго документирани под формата на техническо задание и фиксирани за целия период на разработване на проекта. Всеки етап завършва с издаването на пълен набор от документация, достатъчна за разработката, която да бъде продължена от друг екип за разработка.
Етапи на проекта според модела на водопада:

  1. Формиране на изисквания;
  2. Дизайн;
  3. внедряване;
  4. Тестване;
  5. изпълнение;
  6. Експлоатация и поддръжка.

В модела на водопада преходът от една фаза на проекта към друга предполага пълната коректност на резултата от предишната фаза. При големи проекти това е почти невъзможно да се постигне. Следователно такъв модел е подходящ само за разработване на малък проект. (Самият У. Ройс не се придържа към този модел и използва итеративен модел).
Итеративен модел
Алтернатива на модела на водопада е моделът на итеративно и инкрементално развитие (IID), получен от Т. Гилб през 70-те години. името на еволюционния модел. Моделът IID разделя жизнения цикъл на проекта на поредица от итерации, всяка от които прилича на „мини-проект“, включително всички процеси на разработка, приложени към създаването на по-малки части от функционалност, в сравнение с проекта като цяло. Целта на всяка итерация е да се получи работеща версия софтуерна система, което включва функционалността, дефинирана от интегрираното съдържание на всички предишни и текущи итерации. Резултатът от последната итерация съдържа цялата необходима функционалност на продукта. Така със завършването на всяка итерация продуктът получава прираст - прираст - към своите възможности, които следователно се развиват еволюционно.


В повечето съвременни методологии за разработка се прилагат различни варианти на итеративния подход:

Процес на разработка - Rational Unified Process (RUP)

Рационален унифициран процес (RUP)(Rational Unified Process) е методология за разработка на софтуер, поддържана от Rational Software (IBM). Методологията дава препоръки за всички етапи на разработка: от бизнес моделиране до тестване и въвеждане в експлоатация на готовата програма. Унифицираният език за моделиране (UML) се използва като език за моделиране.
Пълният жизнен цикъл на разработване на продукта се състои от четири фази, всяка от които включва една или повече итерации.

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

  • Разработване
  • Документация за изискванията. Проектиране, внедряване и тестване на изпълнимата архитектура. Уточняване на срокове и цена. Намаляване на основните рискове. Успешното завършване на фазата на разработка означава достигане на етапа на жизнения цикъл на архитектурата.

  • Строителство
  • Във фаза "Build" се изпълнява по-голямата част от функционалността на продукта: дизайнът на приложението е завършен, изходният код е написан. Фазата на изграждане завършва с първото външно издание на системата и етапа на първоначалната оперативна способност.

  • Изпълнение (преход)
  • Във фаза „Внедряване“ се създава окончателната версия на продукта и се прехвърля от разработчика към клиента. Това включва програма за бета тестване, обучение на потребителите и осигуряване на качеството на продукта. В случай, че качеството не отговаря на очакванията на потребителите или на критериите, зададени в началната фаза, фазата на внедряване се повтаря отново. Постигането на всички цели означава достигане на крайъгълния камък на готовия продукт (Пускане на продукта) и завършване на пълния цикъл на разработка.



« Информационни технологии. Системно и софтуерно инженерство. Процеси на жизнения цикъл софтуерни инструменти» . Този стандарт е приет от Федералната агенция за технически регламенти метрология на Руската федерация и е подобен на международния стандарт ISO/IEC 12207:2008. Този стандарт, установява обща рамка за процесите на жизнения цикъл на софтуера, която може да се използва като насока в софтуерната индустрия. Стандартът не предлага специфичен моделжизнен цикъл. Неговите разпоредби са общи за всички модели на жизнения цикъл, методи и технологии за създаване на софтуер. Той описва структурата на процесите от жизнения цикъл, без да уточнява как да се изпълняват или изпълняват дейностите и задачите, включени в тези процеси.

Презентация към урока
Теми за съобщения
  • Фондация за свободен софтуер (FSF)
  • Лицензи за безплатен софтуер
  • Безплатен софтуер и отворен код
  • История на развитието на езиците за програмиране
  • История на C. C и C++
  • История
  • Критика на C++
  • История на UNIX
  • Спирален модел на жизнения цикъл на софтуера
  • UML (English Unified Modeling Language - унифициран език за моделиране)
  • Microsoft Solutions Framework
  • IDE за програмиране на C/C++ под Windows
  • C/C++ компилатори
  • Създаване на конзолно приложение в Windows
Въпроси
  1. Защо водопадният модел за разработка на софтуер не се използва в големи проекти?
  2. Каква е разликата между водопада и итеративните модели на развитие?
  3. Избройте етапите на разработка на софтуер в методологията на Rational Unified Process (RUP).

Защо C++

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

C# е нов език, разработен от Microsoft за мрежовата платформа. По същество C# е вид C++ и въпреки редица фундаментални разлики, езиците C# и C++ съвпадат с около 90%. Вероятно ще мине много време преди C# да стане сериозен конкурент на C++; но дори и да го направи, познаването на езика C++ ще бъде значително предимство.

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

Появата и еволюцията на езика C++

Бьорн Страуструп е разработчикът на езика C++ и създателят на първия преводач. Той е изследовател компютърен център AT&T Bell Laboratories в Мъри Хил (Ню Джърси, САЩ). Той получава титлата магистър по математика и компютърно инженерство от университета в Аарус (Дания), а докторската си степен по Информатикав университета в Кеймбридж (Англия). Специализира в разпределени системи, операционни системи, моделиране и програмиране. Заедно с M. A. Ellis той е автор на пълно ръководство за езика C++ - "A Guide to C++ with Notes".

Разбира се, C++ дължи много на езика C, който е запазен като негово подмножество. Запазени са и всички инструменти на ниско ниво, присъщи на C, предназначени да решават най-належащите проблеми на системното програмиране. C, от своя страна, дължи много на своя предшественик BCPL. Коментарът на езика BCPL е възстановен на C++. Друг източник на вдъхновение беше езикът SIMULA-67; именно от него е заимствано понятието класове (заедно с производните класове и виртуалните функции). Способността на C++ да претоварва оператори и свободата да поставя декларации, където и да се появи оператор, напомня на езика Algol-68.

| Повече ▼ ранни версииезиците, наречени "C с класове", се използват от 1980 г. Този език възниква, защото авторът трябва да напише симулационни програми, управлявани от прекъсване. Езикът SIMULA-67 е идеален за това, освен за ефективност. Езикът "C с класове" беше използван за големи задачи за моделиране. По това време възможностите за писане на програми върху него, за които времето и ресурсите на паметта са критични, бяха подложени на строги тестове. Този език нямаше претоварване на оператори, препратки, виртуални функции и много други функции. За първи път C++ напусна изследователската група, в която авторът работи през юли 1983 г., но по това време много функции на C++ все още не бяха разработени.

Името C++ (C плюс плюс) е измислено от Рик Маскити през лятото на 1983 г. Това име отразява еволюционния характер на промените в езика C. Нотацията ++ се отнася до операцията за нарастване на C. Малко по-краткото име C+ е синтактична грешка. Освен това вече е използвано като име на съвсем различен език. C семантиците откриват, че C++ е по-лош от ++C. Езикът не се нарича D, защото е разширение на C и не се опитва да реши никакви проблеми чрез премахване на характеристики на C. Друга интересна интерпретация на името C++ може да бъде намерена в приложението към .

Първоначално C++ беше замислен така, че авторът и неговите приятели не трябваше да програмират на асемблер, C или други съвременни езици от високо ниво. Основната му цел е да опрости и направи по-приятен процеса на програмиране за отделния програмист. Доскоро нямаше план за разработка на C++ на хартия. Проектирането, изпълнението и документацията вървяха ръка за ръка. Никога не е имало „C++ Project“ или „C++ Design Committee“. Следователно езикът се е развил и продължава да се развива по такъв начин, че да преодолее всички проблеми, които потребителите са срещнали. Обсъжданията на автора на всички проблеми с неговите приятели и колеги също служат като тласък за развитие.

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

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

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

Около 1987 г. стана ясно, че работата по стандартизация на C++ е неизбежна и че основата за нея трябва да започне незабавно.

AT&T Bell Laboratories беше основният участник в тази работа. Около стотина представители от около 20 организации проучиха и коментираха това, което стана съвременната версия справочно ръководствои изходни материали за стандартизация на ANSI. C++. Накрая, по инициатива на Hewlett-Packard, през декември 1989 г. в рамките на ANSI беше сформиран комитет X3J16. Очаква се работата по стандартизация на C++ в ANSI (американски стандарт) да стане неразделна част от работата по стандартизация на ISO (Международна организация по стандартизация).

C++ се разви заедно с развитието на някои от основните класове.