přejít na obsah přejít na navigaci

Linux E X P R E S, Programovanie v jazyku C++: Úvod a história (1)

Soutěž - glukometry

Programovanie v jazyku C++: Úvod a história (1)

cplusplus.png

Tento článok bude prvým dielom seriálu o programovacom jazyku C++. Dnes si povieme, na čo slúži programovací jazyk C++, niečo o jeho histórii a možnostiach.


reklama

Filozofia jazyka

Jazyk C++ má v sebe tri rozdielne filozofie písania kódu. Prvou filozofiou je štrukturované programovanie, druhou objektovo orientované programovanie a treťou je generické programovanie (programovanie na základe predlôh podporované šablónami jazyka C++).

Syntax jazyka C++ je prebraná z jazyka C. Jazyk C++ je veľmi podobný jazyku C, avšak je rozšírený o objektovo-orientované a generické programovanie. Na to, aby ste sa naučili jazyk C++ je potrebné vedieť štandard syntaxe jazyka C. Tam sú prítomne základné typy, riadiace štruktúry, operátory, syntaktické pravidla.

Otázkou je, čí je lepšie sa naučiť jazyk C a potom prejsť na jazyk C++. Na to neexistuje jednoznačná odpoveď, ale veľa autorov rôznych programátorských kníh tvrdí, že lepšie je sa hneď vrhnúť na jazyk C++, pretože prechod z jazyka C na C++ nemusí byť hladký.

Môžu nastať zle programátorské návyky pri programovaní v jazyku C. V jedno som ale zajedno – treba hlavne veľa programovať a snažiť sa zdokonaľovať algoritmické myslenie, syntax rôznych jazykov je potom len „brnkačka“.

Vznik programovacích techník vedúce až k jazyku C++

Prvé elektronické počítače sa objavili počas obdobia druhej svetovej vojny. Od vtedy sa počítače začali rýchlo šíriť po celom svete. Najprv pracovali programátori so strojovým kódom. Strojový kód obsahoval len primitívne inštrukcie tak, ako tomu rozumel procesor počítača. Tieto inštrukcie boli tvorené nulami a jedničkami.

Vývoj smeroval k vzniku jazykom vyššej úrovne(v porovnaní so strojovými jazykmi), ako jazyk Basic či COBOL. Tieto jazyky vyznávali procedurálne programovanie. Už netrebalo prácne si pamätať jednotlivé inštrukcie z núl a jedničiek, kód bol zložený z anglicky sa podobajúcim slovám a vetám a môžeme povedať, že tu sa začína zrod programovacích jazykov, také aké ich v súčasnosti poznáme.

Slová a vety z Basicu a COBOLU boli preložené do strojového jazyka pomocou interpretov a kompilátorov. Interpret programu preloží kód pri čítaní a mení slovné inštrukcie do jednotlivých akcii. Napríklad inštrukcia  Premenna = 10 priradí premennej hodnotu 10. Miesto písania núl a jedničiek postačí vedieť slovné konštrukcie a jednoducho tvoriť programy pre počítač. Interpret to robí za pochodu čítania inštrukcii.

Kompilátor ale miesto krok po kroku (interpret) preloží celý kód do objektového súboru, ktorý ale nie je spustiteľný. Tomuto kroku nazývame kompilácia. Následne kompilátor spustí linker, ktorý objektový súbor prevedie do spustiteľného programu.

Poďme porovnať kompilátor s interpretom. S interpretom sa ľahšie pracuje, pretože interpret spracúvava inštrukciu za inštrukciou a hneď ju prevedie do strojovej podoby. V súčasnosti väčšinu interpretovaných programov označujeme ako skripty a interpret nazývame ako skriptove jadro. V programovacom jazyku Java nazývame interpret virtuálnym strojom. Vo Visual Basicu behovou knižnicou.

Virtuálny stroj Javy ovšem už dávno nie je prostým interpretom. Podporuje dynamickú kompiláciu rôznych častí kódu a ich optimalizáciu podľa cieľovej platformy.

Aké sú výhody kompilátora? Síce prináša krok naviac, keďže musí skompilovať zdrojový kód na objektový súbor a z neho vytvoriť spustiteľný súbor. Avšak, skompilované programy bežia rýchlejšie ako interpretované.

Treba si uvedomiť, že požiadavka kompilácie nastane len raz. Po nej ostane objektový súbor, ktorý je zrozumiteľný pre počítač a spustiteľný súbor, ktorý je možne spustiť na každej procesorovej i softvérovej platforme. Interpretované programy stále potrebujú interpret, skompilovaný spustiteľný program je už všade k dispozícii.

Eduard Boldižár

Eduard Boldižár, 17. srpen

Programovanie v jazyku C++: Knižnica string – funkcie begin a end

Doteraz ste sa naučili, ako pracovať s cyklami a taktiež sme sa pozreli na základnú prácu s poliami a...


Eduard Boldižár

Eduard Boldižár, 10. srpen

Programovanie v jazyku C++: Knižníca cctype (4)

V zaverečnom dieli minicyklu o knižnici cctype si ukážeme niektoré zaujímave funkcie napr. testovanie znaku,...


Eduard Boldižár

Eduard Boldižár, 03. srpen

Programovanie v jazyku C++: Knižnica cctype (3)

Pokračujeme v predstavovaní knižnice cctype a jej podporovaných funkcii. 


Eduard Boldižár

Eduard Boldižár, 25. červenec

Programovanie v jazyku C++: Knižnica cctype (2)

V minulom diele sme si prvý krát predstavili knižnicu cctype a zamerali sme sa na test veľkostí znakov. V tomto...


Eduard Boldižár

Eduard Boldižár, 10. červenec

Programovanie v jazyku C++: Knižnica cctype (1)

V tomto článku si prvý krát ukážeme knižnicu cctype , ktorá nám umožní manipulovať zo znakmi. Knižnica...


Eduard Boldižár

Eduard Boldižár, 30. červen

Programovanie v jazyku C++: Generátor pseudonáhodných čísel (2)

Pokračujeme druhým dielom o generátore pseudonáhodných čísel. Diel bude zameraný na tvorbu programov, kde si...


Eduard Boldižár

Eduard Boldižár, 21. červen

Programovanie v jazyku C++: Generátor pseudonáhodných čísel (1)

Začneme v článku s úvodom do funkcii a ukážeme funkcie na generovanie pseudonáhodných čísel. 


Eduard Boldižár

Eduard Boldižár, 14. červen

Programovanie v jazyku C++: Iteratívne programy s pomocou cyklov (2)

Pokračujeme tvorbou iteratívnych programov s pomocou cyklov. Ukážeme si program na tvorbu jednoduchej tabuľky....


Eduard Boldižár

Eduard Boldižár, 07. červen

Programovanie v jazyku C++: Iteratívne programy s pomocou cyklov (1)

S pomocou cyklov vieme vytvoriť zaujímave iteratívne programy, ktoré si ukážeme v tomto a nasledujúcom diele....


Eduard Boldižár

Eduard Boldižár, 12. květen

Programovanie v jazyku C++: Podmienka switch-case

Okrem podmienok s konštrukciou if-else poznáme aj switch-case. Tento typ podmienky sa hodí všade tam, kde...


Eduard Boldižár

Eduard Boldižár, 28. duben

Programovanie v jazyku C++: Príkaz goto

Minule sme riešili príkazy break a continue. V tomto článku pokračujeme ďalším zo základných...


Eduard Boldižár

Eduard Boldižár, 21. duben

Programovanie v jazyku C++: Príkazy break a continue

V článku sa budeme zaoberať dvoma príkazmi, ktoré patria do základnej konštrukcie jazyka C++. Pôjde o...


Eduard Boldižár

Eduard Boldižár, 05. duben

Programovanie v jazyku C++: Chyby

V článku sa zameriame na tri typy chýb, s ktorými sa môžete stretnúť behom programovania v jazyku C++....


Eduard Boldižár

Eduard Boldižár, 22. březen

Programovanie v jazyku C++: Operátory (3)

Pokračujeme tretím a zároveň posledným dielom z cyklu operátory. Okrem dokončenia bitových operátorov na...


Eduard Boldižár

Eduard Boldižár, 08. březen

Programovanie v jazyku C++: Operátory (2)

Tento článok bude viac teoretický. Čaká nás putovanie do zaujímavej oblastí, kde premostíme nejaké...


Procedurálne/štrukturované programovanie a jazyk C

Jazyk C sa zaslúžil o vytvorenie veľmi rýchlych programov, ktoré boli schopné rýchlo komunikovať s hardvérom. Dovtedy bolo skoro nemožné komfortne riadiť komunikačné porty či ovládače disku. Jedine pomocou strojového kódu.

Začalo sa to v 70 rokoch, keď Dennis Ritchie z Bellových laboratórii pracoval na vývoji operačného systému UNIX.  Operačný systém definujeme ako nejakú sadu programov, ktoré spravujú hardvér i softvér a komunikujú s užívateľom. Napríklad, operačný systém vyšle výzvu, či spustiť nejaký program a užívateľ buď súhlasí alebo nie. Ak súhlasí, tak spustí dotyčný program.

Tu pri operačných systémoch je potrebná veľká dávka abstrakcie. Preto bola iniciatíva vyvinúť programovací jazyk, ktorý by vytváral rýchle programy, mal istú abstraktnú úroveň a zároveň, aby účinne riadil hardvér na najnižšej úrovne a taktiež, aby bol priehľadný pre programátorov.

Doterajšie asemblery riešili tento problém, avšak nevýhodou bolo, že čo iná platforma procesora, to iný asembler. Tým, že asembler je strojovo-orientovaný jazyk, bol silne závislý na type procesora. Každý typ procesora mal svoj asembler.

A ani procedurálne programovanie na túto úlohu nestačilo. Projekt UNIX ale predpokladal, že bude funkčný pre rôzne typy počítačov. Vznikla tak požiadavka vyvinúť vyšší programovací jazyk. Úlohou vyšších programovacích jazykov nebola orientácia na určitý hardvér, ale riešenie problémov. Silne s tým súvisí rozvoj istého stupňa abstrakcie.

Jazyk C je prvým jazykom, ktorý spája výhodu prístupu hardvéru na nízkej úrovne a prenosíteľnosti na rôzne typy počítačov a riešil i problémy procedurálneho programovania.

O prenositeľnosť sa staral kompilátor. Kompilátor, ako sme si hovorili, preloží zdrojový kód do strojového kódu, ktorému porozumie procesor. Aké jednoduché, spustiť kompilátor je možne v rôznych typoch počítačov a strojový kód, ktorý je i tak nespustiteľny, je vytvorený na mieru procesora. Linker sa už len postará o spustiteľnosť programu.

Procedurálne programovanie sa zameriava hlavne na algoritmus programu. Program môžeme chápať ako recept pre počítač. Máme tu sadu inštrukcii, ktorú má počítač vykonať. Algoritmy (čiže recepty) sú alfou-omegou procedurálneho programovania.

Procedurálne programovanie fungovalo na základe premisie, že sme kontrolovali ktorá funkcia vola  ďalšiu funkciu a u ktorých dát došlo k zmene. Typickými predstaviteľmi procedurálneho programovania boli jazyk Basic a Fortran.

Čím sa stavali programy zložitejšie, prichádzali problémy. Pri veľmi dlhých zdrojových kódoch, kde bolo veľa funkcii a prehľadnosť sa strácala, byť len zmeniť jednu funkciu bolo utrpením.

Taktiež procedurálne programovanie používalo príkazy skoku, ich úlohou bolo zmeniť vykonávanie programu z iného miesta v kóde. Príkazy skoku realizovali cykly či podmienky.

Jazyk C priniesol spásu doterajších problémov. Štrukturované programovanie prináša len malú množinu príkazov (cykly for, while, do-while a podmienky if-else), ktoré nahradzujú príkazy skoku.

Ďalším dôvtipným rysom štrukturálneho programovania bol beh programu zhora nadol a to veľmi výrazne spriehľadnil zdrojový kód pre programátorov.

V jazyku C je napísaná drvivá väčšina kódu linuxového jadra. Stále sa často využíva aj v mnohých ďalších softvérových projektoch, napriek nástupu C ++ a mnohých ďalších jazykov.

Objektovo orientovaný prístup

V ďalšej častí sa dozviete o potrebe objektovo orientovaného prístupu a príbeh vzniku jazyka C++.

Nahoru

(Jako ve škole)
Průměr: 2,00 | Hodnotilo: 18
 

Top články z OpenOffice.cz

Příspěvky

Programovanie v jazyku C++: Úvod a história (1)
pravopis 7. 04. 2016, 07:57:13
Odpovědět  Odkaz 
prenosíteľnosti - prenositeľnosti
vola - volá
premisa - premisy
Programovanie v jazyku C++: Úvod a história (1)
Tomo 8. 04. 2016, 19:54:39
Odpovědět  Odkaz 
Proč další seriál o C++? Všude jich je spousta, obsah je u všech mizerný a skončí u vypisování řetězců na stdout. Tento dopadne úplně stejně.

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky Exospace.cz. Mám 23 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.


  • Distribuce: ubuntu
  • Grafické prostředí: unity
  • Hodnocení autora: *



Public Relations

Využijte letní akce na předplatné časopisu IT Systems!

Nenechte si ujít příležitost dostávat pravidelně informace ze světa podnikové informatiky a předplaťte si časopis IT Systems. Udržujte si přehled v oboru a získejte inspiraci, jak využít informační technologie pro vaši firmu nebo organizaci. K pořízení nebo obnovení předplatného IT Systems je nyní ideální příležitost. Právě totiž probíhá letní akce, v rámci níž je možno získat roční předplatné jen za 599 Kč.

Pokračování ...


Soutěž - glukometry