Кој го измислил програмскиот јазик в. §1 Општи информации за јазикот

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

потеклото

C и е „ко-производ“ од создавањето на оперативниот систем UNIX, кој беше развиен во Bell Laboratories од Кен Томпсон, Денис Ричи и ко. Томпсон сам ја напиша оригиналната верзија на UNIX што работеше на DEC PDP-7, еден од првите миникомпјутери со само 8K зборови главна меморија (на крајот на краиштата беше 1969 година).

Како и другите оперативни системи од тоа време, UNIX беше напишан на асемблер јазик. Дебагирањето на програмите за асемблерски јазик е вистинска болка и тешко се подобрува, а UNIX не беше исклучок. Томпсон одлучи дека е потребен јазик за понатамошен развој на ОС. високо нивои излезе со мал јазик Б. Томпсон го зеде BCPL, системски програмски јазик развиен во средината на 60-тите, како основа. BCPL, пак, потекнува од Algol 60, еден од најраните (и највлијателните) јазици.

Ричи наскоро се приклучи на проектот UNIX и почна да пишува во Б. Во 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, напишан од Брајан Керниган и Денис Ричи и објавен во 1978 година, стана библија на програмерите C. Во отсуство на официјален стандард, оваа книга - позната и како K&R, или „Бела книга“ како што сакаат да ја нарекуваат обожавателите на C - стана де факто стандард. Имаше малку C програмери во 70-тите и повеќето од нив беа корисници на 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 јазик и UNIX

Програмски јазик ОД(се изговара „C“) беше создаден во раните 70-ти кога Кен Томпсон и Денис Ричи од Bell Labs го развиваа оперативниот систем UNDC. Прво го создадоа компајлерот ОД, потоа го искористи за да го компајлира остатокот од компајлерот ОДи конечно го искористи добиениот компајлер за да го компајлира UNIX. Оперативниот систем UNIX првично беше дистрибуиран во изворни кодови на ОДмеѓу универзитетите и лабораториите, а примачот може да го состави изворниот код на јазикот ОДдо мајчин код користејќи соодветен компајлер ОД.

Дистрибуцијата на изворниот код го направи оперативниот систем UNIX единствен; програмерот би можел да го промени оперативниот систем, а изворниот код би можел да биде пренесен од една хардверска платформа на друга. Денес, стандардот POSIX го дефинира стандардниот сет на UNIX системски повици достапни во ОД, што мора да се имплементира на верзии на UNIX кои се во согласност со POSIX. C беше третиот јазик развиен од Томсон и Ричи за време на создавањето на UNIX; Првите две беа, се разбира, НОи AT.

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

Во споредба со претходниот јазик - BCPL, јазикот ОДе подобрен со додавање на типови на податоци со специфични должини. На пример, типот на податоци int може да се користи за да се создаде променлива со одреден број битови (обично 16), додека долгиот тип на податоци може да се користи за создавање на цела променлива со повеќе битови (обично 32). За разлика од другите јазици на високо ниво, ОДможе да работи со мемориски адреси директно користејќи покажувачи и референци. Затоа што ОДја задржа можноста за директен пристап хардвер, често се нарекува јазик на средно ниво или на шега се нарекува „мобилен асемблерски јазик“.

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

Што се однесува до граматиката и синтаксата, ОДе структуриран програмски јазик. Додека многу современи програмери размислуваат во однос на класи и објекти, програмерите ОДразмислуваат во однос на процедурите и функциите. AT ОДможете да дефинирате свои апстрактни типови на податоци користејќи го клучниот збор struct. Слично, можете да ги опишете вашите сопствени типови цели броеви (набројувања) и да им дадете други имиња на постоечките типови на податоци користејќи клучен збор typedef . Во оваа смисла ОДе структурен јазик со микробите на објектно-ориентираното програмирање.

Стандардизација на јазикот С

Широко распространет јазик Вна разни видовикомпјутерите (понекогаш наречени хардверски платформи) доведоа, за жал, до многу варијации на јазикот. Тие беа слични, но некомпатибилни едни со други. Ова беше голем проблем за развивачите на софтвер кои требаше да напишат компатибилни програми што може да работат на повеќе платформи. Стана јасно дека е потребна стандардна верзија В. Во 1983 г ANSI (Американски национален комитет за стандарди) формираше технички комитет X3J11 за да создаде јазичен стандард В(за „да се обезбеди недвосмислена и машински независна јазична дефиниција“). Во 1989 година стандардот беше одобрен. ANSI соработува со ISO (Меѓународна организација за стандарди) за стандардизација Вмеѓународно; заеднички стандард беше објавен во 1990 година и именуван ANSI/ISO 9899:1990. Овој стандард сè уште се подобрува и е поддржан од повеќето развивачи на компајлери.

Раѓање на C++

Бјорн Струструп ослободува објектно-ориентиран потенцијал ОДсо пренесување на карактеристиките на класата Симула 67во ОД. На почетокот нов јазикго носеше името „Ц со класи“ и дури тогаш почна да се нарекува C++. Јазик C++постигна популарност со тоа што беше развиен во Bell Labs, подоцна беше префрлен во други индустрии и корпорации. Денес тој е еден од најпопуларните (и авторитативни) програмски јазици во светот. C++ги наследува и добрите и лошите страни ОД.

Исповеди на Бјорн Струшруп

Бјорн Струструп: „Смислив C++, ја запиша својата оригинална дефиниција и ја направи првата имплементација. Избрав и формулирав критериуми за дизајн C++, ги разви своите главни карактеристики и беше одговорен за судбината на предлозите за проширување на јазикот во комитетот за стандардизација C++“, – пишува авторот на најпопуларниот програмски јазик.- „Јазик C++многу му должи на јазикот В, и јазикот Востанува подмножество C++ јазик(но C++ поправа неколку сериозни недостатоци во системот од типот C). Зачував и средства В, кои се доволно на ниско ниво за да се справат со најкритичните системски задачи. Јазик В, пак, му должи многу на својот претходник, BCPL; патем, стилот на коментари // е преземен од C++од БЦПЛ. Другиот главен извор на инспирација беше јазикот Симула67. Од него беше позајмен концептот на класи (со изведени класи и виртуелни функции). Средствата за преоптоварување на операторот и можноста за поставување декларации насекаде каде што може да се напише инструкција потсетува Алгол68. "

Зошто C++

Име C++измислен од Рик Масити. Името укажува на еволутивната природа на преминот кон него од В. „++“ е операција за зголемување во В. Малку пократко име C+е синтаксна грешка; згора на тоа, тој веќе се користи како име на сосема друг јазик. Експерти за семантика Внајдете го тоа C++полошо од ++C. Наслови Дјазикот не го разбра затоа што е продолжение на C и не се обидува да ги реши проблемите со исфрлање на функции.

Зошто беше потребен C++

На почетокот C++ програмски јазике дизајниран така што авторот и неговите пријатели не мора да програмираат на асембле, C или други современи јазици на високо ниво. Неговата главна цел беше да пишува добри програмиполесно и попријатно за индивидуалниот програмер. Развојен план C++никогаш не бил на хартија; проектот, документацијата и имплементацијата се поместени во исто време. Се разбира, надворешниот интерфејс C++беше напишано во C++. Никогаш немало „Проект C++“ или „Комитет за развој на C++“. Затоа C++се развива и продолжува да се развива во сите правци за да се справи со тешкотиите со кои се соочуваат корисниците, како и во дискусиите на авторот со неговите пријатели и колеги.

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

AT C++ јазикпринципите на објектно-ориентираното програмирање се целосно поддржани, вклучувајќи ги и трите столба на кои стои: инкапсулација, наследување и полиморфизам. Капсулација во C++поддржано со креирање на нестандардни (прилагодени) типови на податоци наречени класи. Јазик C++поддржува наследство. Ова значи дека можете да декларирате нов тип на податоци (класа) што е продолжение на постоечки.

Иако C++ програмски јазиксо право се нарекува продолжение ОДи која било функционална програма на јазикот ОДќе бидат поддржани од компајлерот C++, кога се движите од ОДдо C++направен е значителен скок. Јазик C++имал корист од неговото сродство со јазикот ОДсо текот на годините, како што многу програмери открија дека со цел целосно да ги искористат предностите на C++ јазик, треба да напуштат дел од своите претходни знаења и да стекнат нови, имено: да научат нов начин на конципирање и решавање на програмски проблеми. Пред да започнете да учите C++, Stroustrup и повеќето други програмери кои користат C++размислете за учење јазик ОДизборен.

Програмски јазик C++Во моментов се смета за доминантен јазик што се користи за развој на комерцијални производи, 90% од игрите се напишани C++користејќи DirectX.

Литература

Извори:

  • H.M.Deitel, P.J.Deitel "Како да програмирате во C++"
  • Бјорн Струтруп „Програмскиот јазик C++. Трето издание“.
  • Сајмон Робинсон, Оли Корнес, Џеј Глин и други „C# за професионалци“
  • Џес Либерти „Научи се C++ за 21 ден“
  • Станислав Горнаков „Лекции за програмирање DirectX, C++“

Кога вашата репутација работи за ваш профит

Управување со заедницата

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

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

Креирање и имплементација на „виртуелни“ на форуми и во во социјалните мрежи. Постои база на податоци за пумпани и живи сметки на повеќе од 300 локации.

Работа со прегледи

Пишување, координирање и објавување рецензии за брендови на врвни страници и страници за прегледување. Обработка и преклопување на негативни коментари со позитивни. Како резултат на тоа, негативното постепено се истиснува од резултатите од пребарувањето.

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

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

Анализа и истражување

Анализа на информациското поле, истражување на категоријата на производи и главните конкуренти на брендот. Оваа алатка опфаќа задачи од контрола на репутацијата и маркетинг во реално време до длабинско истражување.

SERM

Детална анализа на резултатите од пребарувањето за избрани клучни зборови. Збирка спомнувања за клиентот на социјалните мрежи, форумите и сајтовите за вести. Изработка на стратегија за справување со негативни информации. Клиентот добива целосно контролирано прашање во ТОП10.

Зошто C++

C++ моментално се смета за доминантен јазик што се користи за развој на комерцијални софтверски производи. AT последните годиниоваа доминација беше малку потресена од слични тврдења од програмски јазик како што е Java, но нишалото на јавното мислење се заниша на друг начин, а многу програмери кои го напуштија C++ за Java неодамна се вратија на нивниот поранешен прилог. Во секој случај, овие два јазика се толку слични што со учење на еден од нив, автоматски совладувате 90% од другиот.

C# е нов јазик развиен од Microsoft за мрежна платформа. Во суштина, C# е еден вид C++, и покрај голем број фундаментални разлики, јазиците C# и C++ се совпаѓаат за околу 90%. Веројатно ќе помине многу време пред C# да стане сериозен конкурент на C++; но дури и да го направи, познавањето на јазикот C++ ќе биде значајна предност.

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

Појавата и еволуцијата на јазикот C++

Бјорн Струструп е развивач на јазикот C++ и креатор на првиот преведувач. Тој е вработен во AT&T Bell Laboratories Research Computing Center во Мареј Хил (Њу Џерси, САД). Доби звање магистер по математика и компјутерско инженерство на Универзитетот во Аарус (Данска), а докторирал на Компјутерски наукина Универзитетот во Кембриџ (Англија). Тој е специјализиран за дистрибуирани системи, оперативни системи, моделирање и програмирање. Заедно со М. А. Елис, тој е автор комплетен водична јазикот C++ - „Водич за C++ со белешки“.

Се разбира, 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++ претрпе значителни промени и доусовршувања. Ова главно се однесува на појаснување на преоптоварување, поврзување и управување со меморијата. Сепак, направени се мали промени за да се зголеми компатибилноста со јазикот C. Воведени се и некои генерализации и значајни екстензии, како што се повеќекратно наследување, функции на членови со статички и констатирани спецификации, заштитени членови (заштитени), шаблони за типови и ракување со специјални ситуации. Сите овие екстензии и подобрувања беа насочени кон тоа C++ да стане јазик на кој може да се креираат и користат библиотеки. Сите промени се опишани во.

Други екстензии воведени помеѓу 1985 и 1991 година (како што се повеќекратно наследување, статични функции на членови и чист виртуелни функции) се појави повеќе како резултат на генерализација на искуството на програмирање во C ++ отколку што беа собрани од други јазици.

Јазичните екстензии направени во текот на овие шест години првенствено беа насочени кон зголемување на експресивноста на C ++ како јазик за апстракција на податоци и објектно-ориентирано програмирање воопшто и како средство за создавање висококвалитетни библиотеки со типови на податоци дефинирани од корисникот особено.

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

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

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

C++ (се изговара c-plus-plus) е компајлиран, статички отчукуван програмски јазик за општа намена, кој може да се користи за креирање програми од кое било ниво на сложеност.
Повеќе од 20 години, овој јазик е во првите три најпопуларни и најбарани програмски јазици. (Ова може да се потврди со посета на веб-локацијата на TIOBE).
Јазикот настанал во раните 1980-ти, кога вработениот во Bell Labs, Бјорн Строусруп, смислил голем број подобрувања на јазикот C за свои потреби.

Bjarne Stroustrup - креатор на јазикот C++

Stroustrup одлучи да го прошири јазикот C со функциите достапни на јазикот Simula. Јазикот C, како основен јазик на системот UNIX на кој работеа компјутерите Bell, е брз, богат со карактеристики и пренослив. Stroustrup му додаде способност за работа со класи и предмети. Како резултат на тоа, практичните проблеми со моделирањето се покажаа достапни и во однос на времето на развој (поради употребата на класи слични на Симула) и во однос на времето на пресметување (поради брзината на C).
Еве како го кажува самиот развивач на јазикот:



Во 1998 година, првиот јазичен стандард, познат како C++98, беше објавен од Комитетот за стандарди. C++ продолжува да се развива за да ги задоволи современите барања. Една од групите која го развива јазикот C++ и испраќа предлози до комитетот за стандардизација на C++ за негово подобрување е Засили, кој меѓу другото се занимава и со подобрување на можностите на јазикот со додавање на функции за метапрограмирање. Најновиот стандард беше објавен во 2017 година и се нарекува C++17. Следниот стандард нема долго да се појави и се очекува да се појави во 2020 година.
Никој не ги поседува правата на јазикот C++, тој е бесплатен. Во март 2016 година, во Русија беше создадена работната група WG21 C++. Групата беше организирана да собира предлози за стандардот C++, да ги достави до комитетот и да ги брани на генералните состаноци на Меѓународната организација за стандардизација.
C++ е јазик со повеќе парадигма (од зборот парадигма - стил на пишување компјутерски програми), кој вклучува широк спектар на различни стилови и технологии на програмирање. Често се нарекува објектно-ориентиран јазик, но, строго кажано, тоа не е така. Во процесот на работа, инвеститорот добива апсолутна слобода во изборот на алатки, така што проблемот решен со користење на еден или друг пристап е решен што е можно поефикасно. Со други зборови, C++ не го принудува програмерот да се придржува до само еден стил на развој на програмата (на пример, објектно-ориентиран).
C++ има богата стандардна библиотека која вклучува заеднички контејнери и алгоритми, I/O, регуларни изрази, поддршка за повеќенишки и други функции. C++ влијаеше на многу програмски јазици, вклучувајќи: Java, C#, D. Бидејќи C++ припаѓа на фамилија на јазици засновани на синтаксата на јазикот C, другите програмски јазици од ова семејство можат лесно да се совладаат: JavaScript , PHP, Perl, Objective-C и многу повеќе. итн., вклучувајќи го и самиот матичен јазик - В. ()
За време на неговото постоење, стабилни митови се вкоренети во јазикот C ++, кои лесно се побиваат (види овде: Дел 1 и Дел 2)

Историјата на јазикот и ослободувањето на стандардите

1983

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

1985

Првото комерцијално издание на C++, јазикот добива модерно име

1986

Објавување на првото издание на Програмскиот јазик C++, книга C++ напишана од Бјорн Струструп

1998

Ратификуван е меѓународниот стандард за јазик C++: ISO/IEC 14882:1998 „Standard for the C++ Programming Language“

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). Овој стандард направи многу промени и дополнувања. На пример, СПБ вклучуваше стандардни библиотеки C11, датотечен систем, базиран на boost::датотечен систем, голем дел од експерименталната библиотека TS I.

2020

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

Филозофија C++

Во Дизајнот и еволуцијата на C++ (2007), Бјорн Струшруп ги опишува принципите што ги следел при дизајнирање на C++ (дадени во скратена форма):

  • Добијте универзален јазик со статични типовиподатоци, ефикасност и преносливост на јазикот C.
  • Директно и сеопфатно поддржува различни стилови на програмирање.
  • Дајте му на програмерот слобода на избор, дури и ако тоа му дава можност да избере погрешно.
  • Одржувајте ја компатибилноста со C колку што е можно повеќе, со што ќе биде можно лесно да се префрлите од програмирање на C.
  • Избегнувајте недоследности помеѓу C и C++: секој конструкт што е валиден на двата јазика мора да значи исто во секој од нив и да доведе до исто однесување на програмата.
  • Избегнувајте функции кои зависат од платформата или не се универзални.
  • „Не плаќајте за она што не го користите“ - Ниту една јазична карактеристика не треба да предизвика деградација на перформансите за програмите што не ја користат.
  • Не барајте премногу комплицирано програмско опкружување.

C и C++

Синтаксата C++ е наследена од јазикот C. Иако, формално, еден од принципите на C++ останува да се одржува компатибилноста со јазикот C, всушност, стандардизациските групи на овие јазици не комуницираат и промените што ги прават не само што не се во корелација, туку често и суштински се контрадикторни едни со други идеолошки. Значи, елементите што новите C стандарди ги додаваат во кернелот се елементи на стандардната библиотека во стандардот C ++ и генерално ги нема во кернелот, на пример, динамички низи, низи со фиксни граници, капацитети за паралелна обработка. Струструп верува дека комбинирањето на развојот на овие два јазика би било од голема корист, но тоа е тешко возможно од политички причини. Така, практичната компатибилност помеѓу C и C++ постепено ќе се губи.
AT овој пример, во зависност од користениот компајлер, ќе биде излезен или „C++“ или „C“:

Програма 9.1

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

Ова се должи на фактот што карактерните константи во C се од типот int, а во C++ од типот char, но големините на овие типови се разликуваат.

Модели на животниот циклус на апликацијата

Животен циклус софтвер- ова е временскиот период кој започнува од моментот кога е донесена одлука за потребата од создавање софтверски производ и завршува во моментот на неговото целосно повлекување од работа. Овој циклус е процес на градење и развој на софтвер (SW). Постојат неколку модели на животниот циклус.
Каскаден моделживотниот циклус (англиски модел на водопад) беше предложен во 1970 година од Винстон Ројс. Таа предвидува последователно спроведување на сите фази на проектот по строго фиксен редослед. Преминот во следната фаза значи целосно завршување на работата во претходната фаза. Барањата дефинирани во фазата на формирање на барањата се строго документирани во форма на задачи и фиксирани за целото времетраење на развојот на проектот. Секоја фаза кулминира со објавување на комплетен сет на документација доволна за развој да продолжи од друг тим за развој.
Фази на проектот според моделот на водопад:

  1. Формирање на барања;
  2. Дизајн;
  3. Имплементација;
  4. Тестирање;
  5. имплементација;
  6. Работење и одржување.

Во моделот на водопад, преминот од една фаза на проект во друга ја претпоставува целосната исправност на резултатот од претходната фаза. Во големи проекти тоа е речиси невозможно да се постигне. Затоа, таков модел е погоден само за развој на мал проект. (Самиот В. Ројс не се придржувал до овој модел и користел итеративен модел).
Итеративен модел
Алтернатива на моделот на водопад е моделот на итеративен и инкрементален развој (IID), кој го доби од Т. Гилб во 70-тите. името на еволутивниот модел. Моделот IID го разложува животниот циклус на проектот во серија повторувања, од кои секоја наликува на „мини-проект“, вклучувајќи ги сите развојни процеси применети за создавање на помали делови од функционалност, во споредба со проектот како целина. Целта на секоја итерација е да се добие работна верзија софтверски систем, која ја вклучува функционалноста дефинирана со интегрираната содржина на сите претходни и тековни повторувања. Резултатот од последното повторување ја содржи целата потребна функционалност на производот. Така, со завршување на секое повторување, производот добива зголемување - зголемување - на неговите способности, кои, според тоа, се развиваат еволутивно.


Различни варијанти на итеративниот пристап се имплементирани во повеќето современи развојни методологии:

Процес на развој - Рационален унифициран процес (RUP)

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

  • Почетна фаза (почеток)
  • Одредување на обемот на проектот и количината на потребните ресурси. Утврдени се главните барања, ограничувања и клучната функционалност на производот. Ризиците се проценуваат. Акциско планирање. На крајот од почетната фаза, се оценува постигнувањето на Целта на животниот циклус, што подразбира договор меѓу засегнатите страни за продолжување на проектот.

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

  • Градба
  • Во фазата „Изградба“, најголемиот дел од функционалноста на производот е имплементиран: дизајнот на апликацијата е завршен, изворниот код е напишан. Фазата на градење завршува со првото надворешно ослободување на системот и пресвртницата на почетната оперативна способност.

  • Имплементација (транзиција)
  • Во фазата „Имплементација“ се креира финалната верзија на производот и се пренесува од развивачот на клиентот. Ова вклучува програма за бета тестирање, едукација на корисниците и обезбедување на квалитетот на производот. Во случај квалитетот да не ги исполни очекувањата на корисниците или критериумите поставени во почетната фаза, фазата на имплементација повторно се повторува. Исполнувањето на сите цели значи достигнување на пресвртницата на готовиот производ (производство) и завршување на целосниот циклус на развој.



« Информациска технологија. Системско и софтверско инженерство. Процеси на животниот циклус софтверски алатки» . Овој стандард е усвоен од Федералната агенција за техничка регулатива и метрологија на Руската Федерација и е сличен на меѓународниот стандард ISO/IEC 12207:2008. Овој стандард, воспоставува општа рамка за процесите на животниот циклус на софтверот што може да се користи како насоки во софтверската индустрија. Стандардот не нуди специфичен моделживотен циклус. Неговите одредби се заеднички за сите модели на животниот циклус, методи и технологии за создавање софтвер. Ја опишува структурата на процесите на животниот циклус без да прецизира како да се имплементираат или изведуваат активностите и задачите вклучени во овие процеси.

Презентација за лекцијата
Теми за пораки
  • Фондација за слободен софтвер (ФСС)
  • Лиценци за слободен софтвер
  • Слободен софтвер и отворен код
  • Историја на развојот на програмските јазици
  • Историја на C. C и C++
  • Приказна
  • Критика на C++
  • Историја на UNIX
  • Модел на животниот циклус на софтвер со спирален софтвер
  • UML (англиски унифициран јазик за моделирање - унифициран јазик за моделирање)
  • Рамка за решенија на Мајкрософт
  • IDE за програмирање C/C++ на Windows
  • C/C++ компајлери
  • Креирање на апликација за конзола на Windows
Прашања
  1. Зошто моделот за развој на софтвер водопад не се користи во големи проекти?
  2. Која е разликата помеѓу моделите на водопад и итеративни развојни модели?
  3. Наведете ги фазите на развој на софтвер во методологијата Рационален унифициран процес (RUP).
Споделете