Ovaj članak će se usredotočiti na stvaranje jednog od najsloženijih i nezamjenjivih programskih jezika C ++. Njegov tvorac je programer Bjorn Straustrup, čija je biografija model nevjerojatne posvećenosti.
I mnoge zaslužene nagrade i nagrade, od kojih je jedna - ime Grace Murray Hopper - primljena za razvoj jezika C ++.
Programski jezik C ++ ima povijest koja počinje 1979. godine, kada je talentirani programer radio za svoj doktorat. Jezik kojim je radio, bio je Simula, uglavnom namijenjen (sudeći po imenu) za simulacije. To je prvi jezik koji podržava objektno-orijentiranu paradigmu programiranja koju je Bjorn Stroustrup otkrio vrlo korisno za razvoj softvera. Simula je, međutim, bila prespora za praktičnu uporabu.
Ubrzo nakon toga, Bjarne Straustrup počeo je raditi na “C s razredima” (C ++), koji je, kao što ime implicira, trebao biti nadskup od C. Njegova je svrha bila dodati objektno orijentirano programiranje na C (što je bio i ostaje jezik koji zaslužuje poštovanje prema svojoj mobilnosti), bez žrtvovanja brzine ili niske razine funkcionalnosti. Njegov jezik je uključivao klase, osnovno nasljeđivanje, ugrađivanje, argumente zadane funkcije i strogu provjeru tipova funkcije jezika "Si".
Prvi kompajler "C s klasama" nazvan je Cfront i izveden iz C CPre kompilatora. To je bio program namijenjen prevođenju koda "C s klasama" u običan C. Zanimljivo je napomenuti da je Cfront pisan uglavnom u "C s razredima", što ga čini samodostatnim prevodiocem (kompajler, možete sami sastaviti). Nakon toga, Cfront će biti zatvoren 1993. nakon što je postalo teško integrirati nove funkcije u njega, naime C ++ iznimke. Ipak, Cfront je imao ogroman utjecaj na implementaciju budućih kompilatora i na operacijski sustav Unix.
Godine 1983, naziv jezika je promijenjen s C na C na C ++. ++ operator u jeziku C je operator za povećanje varijable. To daje uvid u to kako je Bjorn Straustrup smatrao programiranje i jezik koji je izumio s mnogim novim značajkama. Najistaknutije od njih su virtualne funkcije, preopterećenje funkcija, veze s simbolom &, ključna riječ const i komentari s jednim redom koji koriste dvije kose crte (to je funkcija koja dolazi iz BCPL jezika).
Godine 1985. Straustrupova je knjiga objavljena pod nazivom “C ++ Programski jezik”, prevedena na 19 jezika i izdržala 4 ponavljanja. Iste godine C ++ je implementiran kao komercijalni proizvod. Jezik još nije službeno standardiziran, što knjigu čini vrlo važnom. Godine 1989. jezik je ažuriran kako bi uključio zaštićene i statične članove, kao i nasljeđivanje iz nekoliko razreda.
Godine 1990. objavljen je Annotated C ++ Reference Manual. U istoj godini, kompajler Borland Turbo C ++ bit će objavljen kao komercijalni proizvod. Turbo C ++ dodao je mnoge dodatne knjižnice koje mogu značajno utjecati na razvoj C ++-a. Iako je najnovije stabilno izdanje Turbo C ++a bilo 2006. godine, kompajler je još uvijek u širokoj upotrebi.
Godine 1998. Odbor za standarde C ++ objavio je prvi međunarodni standard za C ++ ISO IEC 14882: 1998, koji će biti neformalno poznat kao C ++ 98. Smatralo se da je Annotated C ++ Reference Manual imao velik utjecaj na razvoj standarda. Također je uključena knjižnica standardnih predložaka, koja je svoj konceptualni razvoj započela 1979. godine. U 2003. godini, odbor je odgovorio na brojne probleme koji su zabilježeni u njihovom standardu iz 1998. i revidirali ga u skladu s tim. Modificirani jezik naziva se C ++ 03.
Godine 2005., Odbor za standarde C ++ objavio je tehničko izvješće (nazvano TR1), koje je detaljno opisalo različite funkcije koje su planirali dodati na najnoviji C ++ standard. Novi standard je nezvanično nazvan C ++ 0x, budući da se očekuje da će biti objavljen do kraja prvog desetljeća. Neobično je, međutim, da novi standard neće biti objavljen do sredine 2011. godine. Prije toga objavljeno je nekoliko tehničkih izvješća, a neki kompilatori počeli su dodavati eksperimentalnu podršku za nove značajke.
Sredinom 2011. godine dovršen je novi C ++ standard (nazvan C ++ 11). Projekt knjižnice Boost imao je značajan utjecaj na novi standard, a neki od novih modula dobiveni su izravno iz odgovarajućih poticajnih knjižnica.
Neke od novih značajki uključivale su podršku za regularne izraze (detaljne informacije o regularnim izrazima možete pronaći ovdje), sveobuhvatnu biblioteku slučajnosti, novu vremensku biblioteku C ++, podršku za atomistike, standardnu biblioteku niti (koja do 2011. nije bila dostupna na C ili C ++) nova sintaksa za petlju koja pruža funkcionalnost sličnu ciklusima foreach u nekim drugim jezicima, ključnu riječ auto, nove klase spremnika, bolju podršku za pridruživanje i popise i opcije inicijalizacije niza divlji uzorci.