Historia ya lugha ya C. Historia ya Lugha C Ukuzaji wa lugha C

Kwa nini C++

C++ kwa sasa inachukuliwa kuwa lugha kuu inayotumiwa kutengeneza bidhaa za programu za kibiashara. Katika miaka ya hivi karibuni, utawala huu umeyumba kidogo kwa sababu ya madai kama hayo kutoka kwa lugha ya programu kama Java, lakini pendulum ya maoni ya umma imebadilika kwa njia nyingine, na watengenezaji programu wengi ambao waliacha C++ kwa Java hivi karibuni wamerudi kwenye mapenzi yake ya zamani. Kwa hali yoyote, lugha hizi mbili zinafanana sana kwamba mara tu unapojifunza moja, unapata 90% ya nyingine kiotomatiki.

C# ni lugha mpya iliyotengenezwa na Microsoft kwa jukwaa la mitandao. Kimsingi, C# ni tofauti ya C++, na licha ya idadi ya tofauti za kimsingi, lugha C# na C++ ni takriban 90% sawa. Pengine itakuwa muda mrefu kabla ya C # kushindana kwa umakini na C++; lakini hata hii ikitokea, ujuzi wa lugha ya C++ utakuwa faida kubwa.

C++ ni lugha ya upangaji wa madhumuni ya jumla. Eneo lake la asili la maombi ni programu ya mfumo, inayoeleweka kwa maana pana ya neno. Kwa kuongeza, C++ imetumiwa kwa ufanisi katika maeneo mengi ya maombi ambayo yanaenda mbali zaidi ya upeo huu. Utekelezaji wa C++ sasa unapatikana kwenye mashine zote, kuanzia kompyuta ndogo ndogo hadi kompyuta kuu kubwa zaidi, na takriban mifumo yote ya uendeshaji.

Kuibuka na mageuzi ya lugha ya C++

Bjarne Stroustrup ndiye msanidi wa lugha ya C++ na muundaji wa mtafsiri wa kwanza. Yeye ni mfanyakazi wa Kituo cha Kompyuta cha Utafiti wa Maabara ya AT&T Bell huko Murray Hill (New Jersey, Marekani). Alipata Shahada ya Uzamili katika Hisabati na Sayansi ya Kompyuta kutoka Chuo Kikuu cha Aarus (Denmark), na Shahada ya Uzamivu katika Sayansi ya Kompyuta kutoka Chuo Kikuu cha Cambridge (Uingereza). Yeye ni mtaalamu wa mifumo iliyosambazwa, mifumo ya uendeshaji, modeli na programu. Pamoja na M. A. Ellis, ndiye mwandishi wa mwongozo bainifu wa lugha ya C++, Mwongozo wa Annotated C++.

Kwa kweli, C++ inadaiwa mengi kwa lugha ya C, ambayo inabaki kama sehemu yake ndogo. Zana zote za kiwango cha chini cha C zilizoundwa ili kutatua matatizo makubwa zaidi ya programu ya mfumo pia zimehifadhiwa. C, kwa upande wake, anadaiwa mengi na mtangulizi wake, lugha ya BCPL. Ufafanuzi wa lugha ya BCPL umerejeshwa katika C++. Chanzo kingine cha msukumo kilikuwa lugha ya SIMULA-67; ilikuwa kutoka kwake kwamba dhana ya madarasa (pamoja na madarasa inayotokana na kazi za kawaida) ilikopwa. Uwezo wa C++ wa kupakia waendeshaji kupita kiasi na uhuru wa kuweka matamko popote mwendeshaji anaweza kutokea ni kukumbusha lugha ya ALGOL-68.

Matoleo ya awali ya lugha, yanayoitwa "C with classes", yalitumiwa kuanzia mwaka wa 1980. Lugha hii ilizuka kwa sababu mwandishi alihitaji kuandika programu za simulizi zinazoendeshwa na kukatizwa. Lugha ya SIMULA-67 ni bora kwa hili, ufanisi kando. Lugha C yenye madarasa ilitumika kwa matatizo makubwa ya kielelezo. Wakati huo, uwezekano wa kuandika programu juu yake ambayo rasilimali za wakati na kumbukumbu zilikuwa muhimu zilifanyiwa majaribio makali. Lugha hii ilikosa upakiaji kupita kiasi wa opereta, marejeleo, vitendaji pepe na vipengele vingine vingi. C++ ilitolewa kwa mara ya kwanza nje ya kikundi cha utafiti cha mwandishi mnamo Julai 1983, lakini vipengele vingi vya C++ vilikuwa bado havijatengenezwa.

Jina C++ (C plus plus) lilianzishwa na Rick Mascitti katika majira ya joto ya 1983. Jina linaonyesha asili ya mabadiliko ya mabadiliko katika lugha ya C. Nukuu ++ inahusu uendeshaji wa kukua C. Jina fupi kidogo C+ ni kosa la sintaksia. Kwa kuongezea, tayari limetumika kama jina la lugha tofauti kabisa. Wataalamu wa semantiki C wanaona C++ mbaya zaidi kuliko ++C. Lugha haijaitwa D kwa sababu ni kiendelezi cha C na haijaribu kutatua matatizo yoyote kwa kuondoa vipengele vya C. Tafsiri nyingine ya kuvutia ya jina C++ inaweza kupatikana katika kiambatisho cha .

C++ ilitungwa awali ili mwandishi na marafiki zake wasilazimike kupanga katika lugha ya mkusanyiko, C, au lugha zingine za kisasa za kiwango cha juu. Kusudi lake kuu ni kurahisisha na kufanya mchakato wa programu kufurahisha zaidi kwa mpangaji programu. Hadi hivi majuzi, hakukuwa na mpango wa ukuzaji wa C++ kwenye karatasi. Ubunifu, utekelezaji na uwekaji kumbukumbu uliendelea sambamba. Hakujawahi kuwa na "C++ Project" au "C++ Development Committee". Kwa hivyo, lugha imebadilika na inaendelea kubadilika kwa njia ya kushinda matatizo yote yanayowakabili watumiaji. Majadiliano ya mwandishi juu ya shida zote na marafiki na wenzake pia hutumika kama msukumo wa maendeleo.

Tangu kuchapishwa kwa toleo la kwanza la kitabu hiki, lugha ya C++ imepitia mabadiliko na uboreshaji mkubwa. Hii inahusu hasa azimio la utata katika upakiaji kupita kiasi, kufunga na usimamizi wa kumbukumbu. Hata hivyo, mabadiliko madogo yamefanywa ili kuongeza upatanifu na lugha ya C. Baadhi ya maelezo ya jumla na viendelezi muhimu pia vimeanzishwa, kama vile urithi mwingi, utendakazi wa wanachama wenye ubainifu wa tuli na const, wanachama wanaolindwa, violezo vya aina na kushughulikia hali maalum. Viendelezi na maboresho haya yote yalilenga kufanya C++ kuwa lugha ambayo maktaba zinaweza kuundwa na kutumika. Mabadiliko yote yamefafanuliwa katika.

Upanuzi mwingine ulianzishwa kati ya 1985 na 1991 (kama vile urithi mwingi, utendakazi tuli wa wanachama, na utendakazi halisi wa mtandaoni) zilitokana na ujanibishaji wa matumizi ya programu ya C++ badala ya kutoka kwa lugha zingine.

Viendelezi vya lugha vilivyofanywa kwa miaka hii sita vililenga hasa kuongeza uwazi wa C++ kama lugha ya uondoaji data na upangaji programu unaolenga kitu kwa ujumla, na kama njia ya kuunda maktaba za ubora wa juu zenye aina za data zilizobainishwa na mtumiaji haswa.

Karibu 1987, ilionekana wazi kuwa kazi ya usanifu wa C++ ilikuwa karibu na kwamba kazi juu yake inapaswa kuanza mara moja.

AT&T Bell Laboratories ilichangia sana kazi hii. Takriban wawakilishi mia moja kutoka takriban mashirika 20 walipitia na kutoa maoni yao juu ya kile kilichokuwa toleo la kisasa la mwongozo wa marejeleo na nyenzo chanzo cha kusawazisha ANSI. C++. Hatimaye, kwa mpango wa Hewlett-Packard, kamati ya X3J16 iliundwa ndani ya ANSI mnamo Desemba 1989. Inatarajiwa kwamba kazi ya kusanifisha ANSI (Kiwango cha Marekani) kwa C++ itakuwa sehemu ya kazi ya kusanifisha ya ISO (Shirika la Kimataifa la Kuweka Viwango).

C++ ilikuzwa wakati huo huo na ukuzaji wa madarasa kadhaa ya kimsingi.

C++ (soma c-plus-plus) ni lugha ya upangaji yenye madhumuni ya jumla iliyokusanywa, iliyoandikwa kwa takwimu ambayo unaweza kuunda programu za kiwango chochote cha utata.
Kwa zaidi ya miaka 20, lugha hii imekuwa miongoni mwa lugha tatu maarufu na zinazohitajika sana za upangaji programu. (Unaweza kuthibitisha hili kwa kutembelea tovuti ya TIOBE).
Lugha hiyo ilianzia mwanzoni mwa miaka ya 1980, wakati mfanyakazi wa Bell Labs Björn Stroustrup alipokuja na maboresho kadhaa ya lugha ya C kwa mahitaji yake mwenyewe.

Bjarne Stroustrup - muundaji wa lugha ya C++

Stroustrup aliamua kupanua lugha ya C kwa uwezo unaopatikana katika lugha ya Simula. C, ikiwa ni lugha ya msingi ya mfumo wa UNIX ambao kompyuta za Bell zilitumia, ni ya haraka, yenye vipengele vingi, na inabebeka. Stroustrup aliongeza uwezo wa kufanya kazi na madarasa na vitu. Kama matokeo, shida za modeli za vitendo ziligeuka kuwa rahisi kusuluhisha kwa suala la wakati wa maendeleo (shukrani kwa utumiaji wa madarasa kama Simula) na kwa suala la wakati wa kuhesabu (shukrani kwa kasi ya C).
Hivi ndivyo msanidi wa lugha anazungumza juu yake:



Mnamo 1998, kiwango cha lugha ya kwanza, kinachojulikana kama C++98, kilichapishwa na kamati ya viwango. C++ inaendelea kubadilika ili kukidhi mahitaji ya leo. Moja ya vikundi vinavyoendeleza lugha ya C++ na kuwasilisha mapendekezo ya kuiboresha kwa Kamati ya Viwango ya C++ ni Kuongeza, ambayo inahusika, kati ya mambo mengine, katika kuboresha uwezo wa lugha kwa kuongeza vipengele vya metaprogramming. Kiwango cha hivi karibuni kilitolewa mwaka wa 2017 na kinaitwa C++17. Kiwango kinachofuata hakitachukua muda mrefu kuja na kinatarajiwa kuonekana mnamo 2020.
Hakuna mtu anayemiliki haki za lugha ya C++; ni bure. Mnamo Machi 2016, kikundi cha kazi WP21 C ++ kiliundwa nchini Urusi. Kikundi kilipangwa kukusanya mapendekezo ya kiwango cha C++, kuyatuma kwa kamati na kuyatetea katika mikutano mikuu ya Shirika la Kimataifa la Kuweka Viwango.
C++ ni lugha ya dhana nyingi (kutoka kwa neno dhana - mtindo wa kuandika programu za kompyuta), ikiwa ni pamoja na aina mbalimbali za mitindo na teknolojia za programu. Mara nyingi huainishwa kama lugha inayoelekezwa na kitu, lakini kwa kusema kweli, hii sivyo. Wakati wa mchakato wa kazi, msanidi hupokea uhuru kamili katika kuchagua zana ili tatizo kutatuliwa kwa kutumia mbinu fulani kutatuliwa kwa ufanisi iwezekanavyo. Kwa maneno mengine, C++ hailazimishi programu kufuata mtindo mmoja tu wa ukuzaji wa programu (kwa mfano, inayoelekezwa kwa kitu).
C++ ina maktaba ya kawaida ya kawaida inayojumuisha kontena na kanuni za kawaida, I/O, misemo ya kawaida, usaidizi wa kusoma maandishi mengi na vipengele vingine. C++ imeathiri lugha nyingi za programu, ikiwa ni pamoja na: Java, C#, D. Kwa kuwa C++ ni ya familia ya lugha kulingana na syntax ya lugha ya C, unaweza kujua kwa urahisi lugha zingine za programu za familia hii: JavaScript, PHP. , Perl, Objective-C na wengine wengi . nk, pamoja na lugha ya mzazi yenyewe - C. ()
Wakati wa kuwepo kwake, lugha ya C++ imepata ngano zinazoendelea ambazo hukanushwa kwa urahisi (tazama hapa: Sehemu ya 1 na Sehemu ya 2)

Historia ya kutolewa kwa lugha na viwango

1983

Muundaji wa lugha hiyo ni Björn Stroustrup, mfanyakazi wa Bell Labs, alianzisha toleo la awali la lugha ya C++ (“C pamoja na madarasa”)

1985

Toleo la kwanza la kibiashara la C++, lugha inachukua jina lake la kisasa

1986

Kutolewa kwa toleo la kwanza la Lugha ya Programu ya C++ - kitabu kilichotolewa kwa C++ kilichoandikwa na Björn Stroustrup

1998

Kiwango cha kimataifa cha lugha ya C++ kimeidhinishwa: ISO/IEC 14882:1998 "Standard for the C++ Programming Language"

2003
2005

Ripoti ya Kiufundi ya Maktaba 1 (TR1) imetolewa. Ingawa si sehemu rasmi ya kiwango, ripoti ilielezea viendelezi kwa maktaba ya kawaida ambayo inapaswa kujumuishwa katika toleo linalofuata la lugha ya C++.

2011

Kutolewa kwa kiwango kipya - C ++11 au ISO/IEC 14882:2011; kiwango kipya kilijumuisha nyongeza kwa msingi wa lugha na upanuzi wa maktaba ya kawaida, ikijumuisha sehemu kubwa ya TR1

2014

Kutolewa kwa kiwango cha C++14 (“Kiwango cha Kimataifa cha ISO/IEC 14882:2014(E) Lugha ya Kupanga C++”); C++14 inaweza kuonekana kama kiendelezi kidogo juu ya C++11, iliyo na marekebisho mengi ya hitilafu na uboreshaji mdogo.

2017

Kutolewa kwa kiwango kipya - C++1z (C++17). Kiwango hiki kilianzisha mabadiliko mengi na nyongeza. Kwa mfano, STD ilijumuisha maktaba za kiwango cha C11, mfumo wa faili kulingana na nyongeza::mfumo wa faili, na maktaba mengi ya majaribio ya TS I.

2020

C++20 ni jina lisilo rasmi la kiwango cha ISO/IEC kwa lugha ya programu ya C++, ambayo inatarajiwa kufuata C++17. Rasimu ya kiwango cha N4800.

C++ Falsafa

Katika kitabu chake The Design and Evolution of C++ (2007), Björn Stroustrup anaeleza kanuni alizofuata wakati wa kubuni C++ (iliyofupishwa):

  • Pata lugha ya kusudi la jumla iliyo na aina za data tuli, ufanisi na ubebekaji wa lugha C.
  • Moja kwa moja na kikamilifu kuunga mkono aina ya mitindo ya programu.
  • Mpe mpangaji programu uhuru wa kuchagua, hata ikiwa inampa fursa ya kuchagua vibaya.
  • Dumisha utangamano na C kadiri uwezavyo, na hivyo kufanya mabadiliko rahisi kutoka kwa upangaji programu ya C iwezekanavyo.
  • Epuka tofauti kati ya C na C++: muundo wowote ambao ni halali katika lugha zote mbili lazima uwe na maana sawa katika kila moja yao na uelekeze kwa tabia sawa ya programu.
  • Epuka vipengele ambavyo vinategemea jukwaa au si vya ulimwengu wote.
  • "Usilipe kwa kile ambacho hutumii" - hakuna kipengele cha lugha kinachopaswa kusababisha kupungua kwa utendakazi wa programu ambazo hazitumii.
  • Usihitaji mazingira magumu zaidi ya programu.

C na C++

Sintaksia ya C++ imerithiwa kutoka kwa lugha ya C. Ingawa, rasmi, moja ya kanuni za C++ inabaki kudumisha utangamano na lugha ya C, kwa kweli, vikundi vya usanifishaji vya lugha hizi haziingiliani, na mabadiliko wanayofanya hayafanyi. tu hazihusiani, lakini mara nyingi kimsingi zinapingana kimawazo. Kwa hivyo, vipengele ambavyo viwango vipya vya C huongeza kwenye kernel ni katika vipengele vya kawaida vya C ++ vya maktaba ya kawaida na haviko kwenye kernel kabisa, kwa mfano, safu za nguvu, safu zilizo na mipaka iliyowekwa, vifaa vya usindikaji sambamba. Kulingana na Stroustrup, kuchanganya ukuzaji wa lugha hizi mbili kunaweza kuwa na faida kubwa, lakini haiwezekani kwa sababu za kisiasa. Kwa hivyo utangamano wa vitendo kati ya C na C++ utapotea polepole.
Katika mfano huu, kulingana na mkusanyaji uliotumiwa, ama "C++" au "C" itatolewa:

Mpango 9.1

#pamoja na int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); rudisha 0; )

Hii ni kutokana na ukweli kwamba wahusika wa kudumu katika C ni wa aina int , na katika C++ wao ni wa aina char , lakini ukubwa wa aina hizi ni tofauti.

Mifano ya Maisha ya Maombi

Mzunguko wa maisha programu ni kipindi cha muda ambacho huanza kutoka wakati uamuzi unafanywa juu ya hitaji la kuunda bidhaa ya programu na huisha wakati ambapo imeondolewa kabisa kutoka kwa huduma. Mzunguko huu ni mchakato wa kujenga na kuendeleza programu. Kuna mifano kadhaa ya mzunguko wa maisha.
Mfano wa Cascade mzunguko wa maisha (mfano wa maporomoko ya maji ya Kiingereza) ulipendekezwa mnamo 1970 na Winston Royce. Inatoa utekelezaji wa mlolongo wa hatua zote za mradi kwa mpangilio maalum. Mpito hadi hatua inayofuata inamaanisha kukamilika kamili kwa kazi katika hatua ya awali. Mahitaji yaliyoamuliwa katika hatua ya uundaji wa mahitaji yameandikwa madhubuti katika mfumo wa maelezo ya kiufundi na yameandikwa kwa maendeleo yote ya mradi. Kila hatua huishia kwa kutolewa kwa seti kamili ya hati zinazotosha kuruhusu uendelezaji uendelezwe na timu nyingine ya maendeleo.
Hatua za mradi kulingana na mfano wa maporomoko ya maji:

  1. Uundaji wa mahitaji;
  2. Kubuni;
  3. Utekelezaji;
  4. Upimaji;
  5. Utekelezaji;
  6. Uendeshaji na matengenezo.

Katika mfano wa cascade, mpito kutoka kwa awamu moja ya mradi hadi nyingine inadhani kuwa matokeo ya awamu ya awali ni sahihi kabisa. Katika miradi mikubwa hii karibu haiwezekani kufanikiwa. Kwa hiyo, mfano huu unafaa tu kwa kuendeleza mradi mdogo. (W. Royce mwenyewe hakuzingatia mtindo huu na alitumia mfano wa kurudia).
Mfano wa kurudia
Njia mbadala ya mfano wa cascade ni mfano wa maendeleo ya mara kwa mara na ya kuongezeka (IID), ambayo yalipokea kutoka kwa T. Gilb katika miaka ya 70. jina la mtindo wa mageuzi. Muundo wa IID unahusisha kuvunja mzunguko wa maisha ya mradi katika mlolongo wa marudio, ambayo kila moja inafanana na "mradi mdogo", ikiwa ni pamoja na michakato yote ya maendeleo inayotumika kuunda vipande vidogo vya utendaji ikilinganishwa na mradi kwa ujumla. Lengo la kila marudio ni kupata toleo la kufanya kazi la mfumo wa programu, ikiwa ni pamoja na utendakazi unaofafanuliwa na maudhui yaliyounganishwa ya marudio yote ya awali na ya sasa. Matokeo ya marudio ya mwisho yana utendakazi wote unaohitajika wa bidhaa. Kwa hivyo, kwa kukamilika kwa kila iteration, bidhaa hupokea ongezeko - ongezeko - kwa uwezo wake, ambayo, kwa hiyo, huendeleza mageuzi.


Lahaja anuwai za mbinu ya kurudia zinatekelezwa katika mbinu za kisasa zaidi za maendeleo:

Mchakato wa Maendeleo - Mchakato wa Rational Unified (RUP)

Mchakato wa Rational Unified (RUP)(mchakato wa umoja wa kimantiki) ni mbinu ya ukuzaji programu inayodumishwa na Rational Software (IBM). Mbinu hutoa mapendekezo kwa hatua zote za maendeleo: kutoka kwa mfano wa biashara hadi kupima na kuagiza programu ya kumaliza. Lugha ya Kielelezo Iliyounganishwa (UML) inatumika kama lugha ya kielelezo.
Mzunguko kamili wa maisha ya ukuzaji wa bidhaa una awamu nne, ambayo kila moja inajumuisha marudio moja au zaidi.

  • Hatua ya awali (Kuanzishwa)
  • Kuamua upeo wa mradi na kiasi cha rasilimali zinazohitajika. Mahitaji ya msingi, vikwazo na utendaji muhimu wa bidhaa huamua. Hatari zinatathminiwa. Mipango ya utekelezaji. Mwishoni mwa awamu ya awali, mafanikio ya Malengo ya Malengo ya Maisha yanatathminiwa, ambayo yanaonyesha makubaliano kati ya wadau ili kuendeleza mradi.

  • Ufafanuzi
  • Mahitaji ya hati. Ubunifu, utekelezaji na upimaji wa usanifu unaoweza kutekelezwa. Ufafanuzi wa masharti na gharama. Kupunguza hatari kuu. Kukamilika kwa awamu ya maendeleo kwa mafanikio kunamaanisha kufikia Malengo ya Usanifu wa Maisha.

  • Ujenzi
  • Katika awamu ya "Jenga", utendaji mwingi wa bidhaa unatekelezwa: muundo wa maombi umekamilika, msimbo wa chanzo umeandikwa. Awamu ya Muundo inaisha kwa toleo la kwanza la nje la mfumo na hatua ya Awali ya Uwezo wa Uendeshaji.

  • Utangulizi
  • Katika awamu ya "Utekelezaji", toleo la mwisho la bidhaa huundwa na kuhamishwa kutoka kwa msanidi hadi kwa mteja. Hii ni pamoja na mpango wa majaribio ya beta, mafunzo ya watumiaji na kubainisha ubora wa bidhaa. Iwapo ubora haukidhi matarajio ya mtumiaji au vigezo vilivyowekwa katika Awamu ya Kuanza, awamu ya Utekelezaji inarudiwa tena. Kukamilisha malengo yote kunamaanisha kufikia hatua muhimu ya Utoaji wa Bidhaa na kukamilisha mzunguko kamili wa utayarishaji.



"Teknolojia ya habari. Uhandisi wa mfumo na programu. Michakato ya mzunguko wa maisha ya programu". Kiwango hiki kilipitishwa na Shirika la Shirikisho la Udhibiti wa Kiufundi na Metrolojia wa Shirikisho la Urusi na ni sawa na kiwango cha kimataifa cha ISO/IEC 12207:2008. Kiwango hiki huanzisha muundo wa jumla wa michakato ya mzunguko wa maisha ya programu ambayo inaweza kufuatwa katika tasnia ya programu. Kiwango hakipendekezi mfano maalum wa mzunguko wa maisha. Masharti yake ni ya kawaida kwa mifano yoyote ya mzunguko wa maisha, mbinu na teknolojia za kuunda programu. Inaelezea muundo wa michakato ya mzunguko wa maisha bila kubainisha jinsi ya kutekeleza au kukamilisha shughuli na kazi zilizojumuishwa katika michakato hiyo.

Uwasilishaji kwa somo
Mada za ujumbe
  • Free Software Foundation (FSF)
  • Leseni za programu za bure
  • FreeSoftware na Chanzo Huria
  • Historia ya maendeleo ya lugha za programu
  • Historia ya lugha ya C. C na C++
  • Hadithi
  • Ukosoaji wa C++
  • Historia ya UNIX
  • Mfano wa mzunguko wa maisha ya programu ya ond
  • UML (Lugha Iliyounganishwa ya Kuiga)
  • Mfumo wa Suluhisho la Microsoft
  • IDE ya programu ya C/C++ kwenye Windows
  • Wakusanyaji wa C/C++
  • Kuunda Programu ya Console kwenye Windows
Maswali
  1. Kwa nini mfano wa maporomoko ya maji ya maendeleo ya programu haitumiki katika miradi mikubwa?
  2. Kuna tofauti gani kati ya maporomoko ya maji na mifano ya maendeleo ya mara kwa mara?
  3. Orodhesha hatua za uundaji wa programu katika mbinu ya Rational Unified Process (RUP).

Wakati sifa yako inafanya kazi kwa faida yako

Usimamizi wa jamii

Uundaji wa Toni ya Sauti. Usindikaji wa haraka wa maoni hasi na mazuri kwa niaba ya chapa. Usimamizi wa mawasiliano kulingana na hali maalum. Tafsiri ya masuala yenye matatizo kwa mteja.

Mawakala wa ushawishi

Uundaji na utekelezaji wa "virtuals" kwenye vikao na mitandao ya kijamii. Kuna hifadhidata ya akaunti zilizoboreshwa na za moja kwa moja kwenye tovuti zaidi ya 300.

Kufanya kazi na hakiki

Kuandika, kuratibu na kuchapisha hakiki kuhusu chapa kwenye majukwaa ya juu na tovuti za kukagua. Kuchakata na kufunika maoni hasi na mazuri. Matokeo yake, uzembe unalazimishwa hatua kwa hatua kutoka kwa matokeo ya utafutaji.

Ufuatiliaji wa mitandao ya kijamii

Kufanya kazi na Youscan, IQbuzz, mifumo ya Uchanganuzi wa Chapa. Udhibiti wa kutajwa kwa chapa. Kutambua maarifa muhimu na kujibu mara moja hasi. Chombo cha lazima cha kufuatilia maoni ya wateja.

Uchambuzi na utafiti

Uchambuzi wa uwanja wa habari, utafiti wa kitengo cha bidhaa na washindani wakuu wa chapa. Zana hii inashughulikia kazi kutoka kwa ufuatiliaji wa sifa na uuzaji wa wakati halisi hadi utafiti wa kina.

SERM

Uchambuzi wa kina wa matokeo ya utafutaji kwa maneno muhimu yaliyochaguliwa. Kukusanya marejeleo kuhusu mteja kwenye mitandao ya kijamii, vikao na tovuti za habari. Kuunda mkakati wa kushughulikia habari hasi. Mteja hupokea uwasilishaji unaodhibitiwa kikamilifu katika TOP10.

Historia ya uumbaji

Lugha hiyo ilianzia mwanzoni mwa miaka ya 1980, wakati mfanyakazi wa Bell Labs Björn Stroustrup alipokuja na maboresho kadhaa ya lugha ya C kwa mahitaji yake mwenyewe. Wakati Stroustrup alianza kufanya kazi katika Bell Labs mwishoni mwa miaka ya 1970 juu ya shida katika nadharia ya foleni (kama inavyotumika kwa simu za mfano), aligundua kuwa majaribio ya kutumia lugha za modeli zilizopo wakati huo hayakuwa na ufanisi, na utumiaji wa lugha za mashine zenye ufanisi zaidi. ilikuwa ngumu sana kutekeleza kwa uwazi wao mdogo. Kwa hivyo, lugha ya Simula ina vipengele ambavyo vinaweza kuwa muhimu sana kwa kutengeneza programu kubwa, lakini ni polepole sana, na lugha ya BCPL ina kasi ya kutosha, lakini iko karibu sana na lugha za kiwango cha chini na haifai kwa kuunda programu kubwa.

Akikumbuka tajriba ya tasnifu yake, Stroustrup aliamua kuongezea lugha C (mrithi wa BCPL) kwa uwezo unaopatikana katika lugha ya Simula. C, ikiwa ni lugha ya msingi ya mfumo wa UNIX ambao kompyuta za Bell zilitumia, ni ya haraka, yenye vipengele vingi, na inabebeka. Stroustrup aliongeza uwezo wa kufanya kazi na madarasa na vitu. Kama matokeo, shida za modeli za vitendo ziligeuka kuwa rahisi kusuluhisha kwa suala la wakati wa maendeleo (shukrani kwa utumiaji wa madarasa kama Simula) na kwa suala la wakati wa kuhesabu (shukrani kwa kasi ya C). Kwanza kabisa, madarasa (yaliyo na encapsulation), urithi wa darasa, ukaguzi wa aina kali, vitendaji vya ndani na hoja chaguo-msingi ziliongezwa kwa C. Matoleo ya awali ya lugha, ambayo awali yaliitwa "C with classes", yalipatikana mwaka wa 1980.

Alipokuwa akitengeneza C kwa kutumia madarasa, Stroustrup aliandika programu inayoitwa cfront, mfasiri anayebadilisha msimbo wa chanzo C na madarasa kuwa msimbo wa chanzo C. Hii iliwezesha kufanyia kazi lugha mpya na kuitumia kwa vitendo, kwa kutumia miundombinu ambayo tayari inapatikana katika UNIX kwa ajili ya maendeleo katika C. Lugha mpya, bila kutarajia kwa mwandishi, alipata umaarufu mkubwa kati ya wenzake na hivi karibuni Stroustrup hakuweza tena kumuunga mkono kibinafsi, akijibu maelfu ya maswali.

Wakati wa kuunda C++, Björn Stroustrup alitaka
  • Pata lugha ya kusudi la jumla iliyo na aina za data tuli, ufanisi na ubebekaji wa lugha C.
  • Inasaidia moja kwa moja na kwa ukamilifu aina mbalimbali za mitindo ya upangaji, ikijumuisha upangaji wa kiutaratibu, uondoaji wa data, upangaji unaolenga kitu, na upangaji wa kawaida.
  • Mpe mpangaji programu uhuru wa kuchagua, hata ikiwa inampa fursa ya kuchagua vibaya.
  • Dumisha utangamano na C kadiri uwezavyo, na hivyo kufanya mabadiliko rahisi kutoka kwa upangaji programu ya C iwezekanavyo.
  • Epuka tofauti kati ya C na C++: muundo wowote ambao ni halali katika lugha zote mbili lazima uwe na maana sawa katika kila moja yao na uelekeze kwa tabia sawa ya programu.
  • Epuka vipengele ambavyo vinategemea jukwaa au si vya ulimwengu wote.
  • “Usilipe kwa kile ambacho hutumii”—hakuna kipengele cha lugha kinachopaswa kusababisha uharibifu wa utendakazi kwa programu ambazo hazitumii.
  • Usihitaji mazingira magumu zaidi ya programu.

Chaguo la C kama msingi wa kuunda lugha mpya ya programu inaelezewa na ukweli kwamba lugha C:

1. ni lugha yenye madhumuni mengi, mafupi na ya kiwango cha chini;
2. yanafaa kwa ajili ya kutatua matatizo mengi ya mfumo;
3. kutekelezwa kila mahali na kwa kila kitu;
4. inaingiliana na mazingira ya programu ya UNIX.

- B. Stroustrup. C++ lugha ya programu. Sehemu ya 1.6

Licha ya kasoro kadhaa zinazojulikana za lugha ya C, Stroustrup aliamua kuitumia kama msingi, kwani "C ina shida zake, lakini lugha iliyokuzwa kutoka mwanzo ingekuwa nayo, na tunajua shida za C." Kwa kuongezea, hii ilifanya iwezekane kupata haraka mkusanyaji wa mfano (mbele), ambayo ilitafsiri tu vipengele vilivyoongezwa vya kisintaksia katika lugha asilia ya C.

C++ ilipokua, vipengele vingine vilijumuishwa ambavyo vilishughulikia uwezo wa miundo C, na kwa hivyo swali la kuacha upatanifu wa lugha kwa kuondoa viunzi vilivyopitwa na wakati liliibuliwa mara kwa mara. Walakini, utangamano umedumishwa kwa sababu zifuatazo:

  • uhifadhi wa msimbo wa sasa, ulioandikwa awali katika C na kuhamishiwa moja kwa moja kwa C ++;
  • kuondoa hitaji la kuwafundisha tena waandaaji wa programu ambao walisoma C hapo awali (wanahitaji tu kujifunza zana mpya za C ++);
  • kuondoa mkanganyiko kati ya lugha wakati zinatumiwa pamoja ("ikiwa lugha mbili zinatumiwa pamoja, tofauti zao zinapaswa kuwa ndogo au kubwa sana kwamba haiwezekani kuchanganya lugha").

Kufikia 1983, vipengele vipya vilikuwa vimeongezwa kwa lugha, kama vile vitendaji dhahania, utendaji kazi na upakiaji kupita kiasi wa opereta, marejeleo, vidhibiti, udhibiti wa mtumiaji juu ya udhibiti wa kumbukumbu bila malipo, ukaguzi wa aina ulioboreshwa, na mtindo mpya wa maoni (//). Lugha iliyotokana haikuwa tu toleo lililoongezwa la C ya kawaida na ilibadilishwa jina kutoka C na madarasa hadi "C++". Utoaji wake wa kwanza wa kibiashara ulifanyika mnamo Oktoba 1985.

Jina la lugha linalotokana linatokana na kiendeshaji cha nyongeza cha C++ unary postfix (kuongeza thamani ya kutofautisha kwa moja).

Kabla ya usanifishaji rasmi kuanza, lugha iliendelezwa hasa na Stroustrup kujibu maombi kutoka kwa jumuiya ya programu. Kazi ya maelezo ya kawaida ya lugha ilifanywa na kazi zilizochapishwa kwenye C ++ iliyoandikwa na Stroustrup (maelezo ya lugha, mwongozo wa kumbukumbu, na kadhalika).

Historia ya viwango

Mnamo 1985, toleo la kwanza la Lugha ya Programu ya C++ lilichapishwa, kutoa maelezo ya kwanza ya lugha, ambayo yalikuwa muhimu sana kwa sababu ya ukosefu wa kiwango rasmi.


Mnamo 1989, toleo la 2.0 la C++ lilitolewa. Vipengele vyake vipya vilijumuisha urithi mwingi, madarasa ya kufikirika, kazi za wanachama tuli, utendakazi wa kila mara, na washiriki wanaolindwa. Mnamo 1990, "Mwongozo wa Marejeleo ya Annotated kwa C ++" ulichapishwa, ambayo baadaye ikawa msingi wa kiwango. Masasisho ya hivi majuzi yamejumuisha violezo, vighairi, nafasi za majina, aina mpya za utumaji na aina ya boolean.

Maktaba ya Kawaida ya C++ pia iliibuka nayo. Nyongeza ya kwanza kwa maktaba ya kawaida ya C++ ilikuwa mitiririko ya I/O, ambayo hutoa njia ya kuchukua nafasi ya utendakazi wa jadi wa C printf na scanf. Baadaye, maendeleo muhimu zaidi ya maktaba ya kawaida yalikuwa kujumuishwa kwa Maktaba ya Kiolezo cha Kawaida.

Mnamo 1998, kiwango cha lugha cha ISO/IEC 14882:1998 (kinachojulikana kama C++98), kilichoundwa na Kamati ya Viwango ya C++ ( ISO/IEC JTC1/SC22/WG21 kikundi kazi), kilichapishwa. Kiwango cha C++ hakielezi jinsi vitu vinavyoitwa majina, baadhi ya maelezo ya kipekee ya kushughulikia, na vipengele vingine vya kina vya utekelezaji, na kufanya msimbo wa kitu unaotolewa na wakusanyaji tofauti kutopatana. Hata hivyo, viwango vingi vimeundwa na vyama vya tatu kwa usanifu maalum na mifumo ya uendeshaji.

Mnamo 2005, Ripoti ya Kiufundi ya Maktaba 1 (iliyofupishwa kama TR1) ilitolewa. Ingawa si sehemu rasmi ya kiwango, ripoti inaeleza viendelezi kwa maktaba ya kawaida ambayo waandishi walitarajia kujumuishwa katika toleo linalofuata la lugha ya C++. Usaidizi wa TR1 unaboreka katika takriban vikusanyaji vyote vya C++ vinavyotumika.

Tangu 2009, kazi imefanywa kusasisha kiwango cha awali, toleo la awali la kiwango kipya lilikuwa la kwanza C++09, na mwaka mmoja baadaye C++0x, leo C++11, ambalo lilijumuisha nyongeza kwenye msingi wa lugha na upanuzi wa maktaba ya kawaida, ikiwa ni pamoja na kujumuisha sehemu kubwa ya TR1.

C++ inaendelea kubadilika ili kukidhi mahitaji ya leo. Mojawapo ya vikundi vinavyoendeleza lugha ya C++ na kuwasilisha mapendekezo ya uboreshaji wake kwa Kamati ya Viwango vya C++ ni Boost, ambayo inajishughulisha, miongoni mwa mambo mengine, katika kuboresha uwezo wa lugha hiyo kwa kuiongezea vipengele vya upangaji programu.

Hakuna mtu anayemiliki haki za lugha ya C++; ni bure. Hata hivyo, hati ya kiwango cha lugha yenyewe (bila kujumuisha rasimu) haipatikani bila malipo.

C++ lugha ya programu

Sasisho la mwisho: 08/28/2017

Lugha ya programu ya C++ ni lugha ya kiwango cha juu, iliyochapishwa kwa takwimu, iliyokusanywa na yenye madhumuni ya jumla ambayo inafaa kwa kuunda aina mbalimbali za programu. Leo, C ++ ni mojawapo ya lugha maarufu na zinazoenea.

Inayo mizizi yake katika lugha ya C, ambayo ilitengenezwa mnamo 1969-1973 huko Bell Labs na programu Dennis Ritchie. Mapema miaka ya 1980, mtayarishaji programu wa Denmark Bjarne Stroustrup, ambaye wakati huo alikuwa akifanya kazi katika Bell Labs, alitengeneza C++ kama kiendelezi kwa lugha ya C. Kwa kweli, mwanzoni, C++ iliongezea tu lugha ya C na uwezo fulani wa upangaji wa kitu. Na ndio maana Stroustrup mwenyewe hapo awali aliiita "C na madarasa."

Baadaye, lugha mpya ilianza kupata umaarufu. Vipengele vipya viliongezwa kwake ambavyo viliifanya sio tu kuongeza kwa C, lakini lugha mpya ya programu. Kama matokeo, "C na madarasa" ilibadilishwa jina na kuwa C ++. Na tangu wakati huo, lugha zote mbili zilianza kukuza kwa kujitegemea.

C++ ni lugha yenye nguvu, inayorithi uwezo wa kumbukumbu kutoka kwa C. Kwa hiyo, C ++ mara nyingi hupata matumizi yake katika programu ya mfumo, hasa, wakati wa kuunda mifumo ya uendeshaji, madereva, huduma mbalimbali, antivirus, nk. Kwa njia, Windows OS imeandikwa zaidi katika C ++. Lakini matumizi ya lugha hii sio tu kwa programu ya mfumo. C++ inaweza kutumika katika programu za kiwango chochote ambapo kasi na utendaji ni muhimu. Mara nyingi hutumiwa kuunda programu za picha na programu mbalimbali za maombi. Pia hutumiwa mara nyingi kuunda michezo na taswira tajiri, tajiri. Kwa kuongeza, hivi karibuni mwelekeo wa simu umekuwa ukipata kasi, ambapo C ++ pia imepata matumizi yake. Na hata katika ukuzaji wa wavuti, unaweza pia kutumia C++ kuunda programu za wavuti au huduma zingine zinazosaidia ambazo hutumikia programu za wavuti. Kwa ujumla, C ++ ni lugha inayotumiwa sana ambayo unaweza kuunda karibu aina yoyote ya programu.

C++ ni lugha iliyokusanywa, ambayo ina maana kwamba mkusanyaji hutafsiri msimbo wa chanzo wa C++ kuwa faili inayoweza kutekelezwa ambayo ina seti ya maagizo ya mashine. Lakini majukwaa tofauti yana sifa zao wenyewe, kwa hivyo programu zilizokusanywa haziwezi tu kuhamishwa kutoka jukwaa moja hadi jingine na kukimbia huko. Hata hivyo, katika kiwango cha msimbo wa chanzo, programu za C++ zinaweza kubebeka kwa kiasi kikubwa isipokuwa baadhi ya vitendaji maalum vya OS vinatumiwa. Na upatikanaji wa wakusanyaji, maktaba na zana za ukuzaji kwa karibu mifumo yote ya kawaida hukuwezesha kukusanya msimbo sawa wa chanzo wa C++ katika programu za mifumo hii.

Tofauti na C, lugha ya C++ hukuruhusu kuandika programu kwa mtindo unaolenga kitu, ikiwakilisha programu kama mkusanyiko wa madarasa na vitu vinavyoingiliana. Ambayo hurahisisha uundaji wa programu kubwa.

Hatua kuu za maendeleo

Mnamo 1979-80, Bjarne Stroustrup aliendeleza ugani kwa lugha ya C - "C na Madarasa". Mnamo 1983 lugha hiyo ilibadilishwa jina C++.

Mnamo 1985, toleo la kwanza la kibiashara la lugha ya C ++ lilitolewa, pamoja na toleo la kwanza la kitabu "Lugha ya Programu ya C ++", ambayo iliwakilisha maelezo ya kwanza ya lugha hii kwa kukosekana kwa kiwango rasmi.

Mnamo 1989, toleo jipya la lugha ya C ++ 2.0 lilitolewa, ambalo lilijumuisha idadi ya vipengele vipya. Baada ya hayo, lugha ilikua polepole hadi 2011. Lakini wakati huo huo, mnamo 1998, jaribio la kwanza la kusawazisha lugha lilifanywa na shirika la ISO (Shirika la Kimataifa la Kusimamia). Kiwango cha kwanza kiliitwa ISO/IEC 14882:1998, au C++98 kwa ufupi. Baadaye, mnamo 2003, toleo jipya la kiwango cha C ++03 lilichapishwa.

Mnamo 2011, kiwango kipya cha C ++ 11 kilichapishwa, ambacho kilikuwa na nyongeza nyingi na kuimarisha lugha ya C ++ na idadi kubwa ya utendaji mpya. Kufuatia hii, nyongeza ndogo kwa kiwango, pia inajulikana kama C++14, ilitolewa mnamo 2014. Na toleo lingine muhimu la lugha hiyo limepangwa 2017.

Wakusanyaji na mazingira ya maendeleo

Ili kukuza programu katika C++, unahitaji mkusanyaji - inatafsiri msimbo wa chanzo katika C++ kuwa faili inayoweza kutekelezwa, ambayo unaweza kuiendesha. Lakini kwa sasa kuna watunzi wengi tofauti. Wanaweza kutofautiana katika nyanja mbalimbali, hasa katika utekelezaji wa viwango. Orodha ya msingi ya wakusanyaji wa C++ inaweza kupatikana kwenye Wikipedia. Inapendekezwa kwa maendeleo kuchagua watunzi wale ambao wanaunda na kutekeleza viwango vyote vya hivi karibuni. Kwa hivyo, katika somo hili lote tutatumia kimsingi kikusanyaji cha g++ kinachopatikana bila malipo kilichotengenezwa na Mradi wa GNU.

Unaweza pia kutumia IDE kama vile Visual Studio, Netbeans, Eclipse, Qt, n.k. kuunda programu.