Přeskočit na obsah

Programovací jazyk

Z Wikipedie, otevřené encyklopedie
Zdrojový kód programu v programovacím jazyce C. Řádky psané šedě jsou komentáře, které vysvětlují funkci programu čtenáři. Po zkompilování a spuštění vypíše na výstup text „Hello, world!“.

Programovací jazyk je prostředek pro zápis algoritmů, jež mohou být provedeny na počítači. Zápis algoritmu ve zvoleném programovacím jazyce se nazývá program.

Programovací jazyk je komunikačním nástrojem mezi programátorem, který v programovacím jazyce formuluje postup řešení daného problému, a počítačem, který program interpretuje technickými prostředky. Programovací jazyk je vlastně soubor pravidel pro zápis algoritmu, odborně řečeno se jedná o formální jazyk.

Programovací jazyky existují v řadě verzí a implementací, mluvíme někdy o dialektech programovacího jazyka. Existují také standardy pro programovací jazyky; pro jednotlivé implementace se často uvádí, kterému standardu vyhovuje.

První programovací jazyky existovaly ještě dříve než počítače. Už v 19. století se používaly programovatelné tkalcovské stavy nebo perforované papírové válce pro samohrající piána, které implementovaly to, co bychom dnes považovali za předchůdce doménově orientovaných programovacích jazyků. Začátkem 20. století se již data uchovávala pomocí děrných štítků.

Ve 30.40. letech 20. století byl definován lambda kalkul (Alonzo Church) a Turingův stroj (Alan Turing), což poskytlo matematický základ pro vyjádření definice algoritmu („turingovsky úplný“ je takový programovací jazyk, který je ekvivalentní Turingovu stroji). Po roce 1940 byly vytvořeny první elektricky napájené digitální počítače, přičemž první vyšší programovací jazyk nazvaný Plankalkül byl vytvořen v letech 1942–1945 pro německý počítač Z3 Konrada Zuse.

Typy programovacích jazyků

[editovat | editovat zdroj]

Existuje několik možných kritérií, podle kterých lze programovací jazyky dělit:

Dle míry abstrakce

[editovat | editovat zdroj]

Dle způsobu překladu a spuštění

[editovat | editovat zdroj]

Toto členění není absolutní, řada programovacích jazyků existuje v implementaci jak interpretované, tak kompilované (například zmíněná Java). Navíc bývají oba postupy někdy kombinovány, tj. zdrojový kód je nejprve kompilován do mezikódu, jenž je poté interpretován.

Dle oblasti použití

[editovat | editovat zdroj]
  • univerzální jazyky (obecné použití, postrádají specializované funkce)
  • doménově specifické (DSL, prostřednictvím vhodné abstrakce a výrazového slovníku jsou zaměřeny na určitou omezenou problémovou doménu).

Dle paradigmatu

[editovat | editovat zdroj]

Vyšší programovací jazyky se často dělí do čtyř základních kategorií podle používaného přístupu, kterým je v nich program reprezentován:

Některé programovací jazyky (např. C++, Python, Object Pascal, Rust, Flex) umožňují programátorovi kombinovat různé přístupy. Část řešení může být například vyjádřena zápisem funkcí a procedur (strukturované programování), část řešení může využívat čistě objektový přístup. Klasickým příkladem jazyka, ve kterém se mezi těmito přístupy nedělá ostrá hranice, je jazyk C++. Podobný pragmatický přístup využívá jazyk Python, který navíc do určité míry podporuje i funkcionální programování. Jako protiklad k nim uveďme jazyk Java, ve kterém se i jednoduchá funkce musí vyjádřit jako metoda třídy.

Dle srozumitelnosti

[editovat | editovat zdroj]

Některé programovací jazyky byly vytvořeny především pro výuku programování a algoritmického myšlení. Mezi takové jazyky patří např. Logo, Karel, Baltík, Petr. Nakonec prvotním důvodem vzniku jazyka Pascal byla také výuka programování.

Existuje i „opačný pól“ – tzv. ezoterické jazyky, jejichž smyslem je zápis programu maximálně zkomplikovat; příkladem je jazyk Brainfuck. Takové jazyky slouží spíše k pobavení a k demonstraci, co všechno je v programování možné. I v programovacích jazycích, které se používají v běžné praxi, existují soutěže, jejichž cílem je vytvořit maximálně nesrozumitelný kód (např. Obfuscated C Contest).

Další jazyky

[editovat | editovat zdroj]

Dále existují programy a nástroje, které nejsou obvykle přímo označovány jako programovací jazyky, ale přesto mají s programovacími jazyky mnoho společného. Většinou jde o komplexní systémy, jejichž účelem je něco jiného než tvorba obecných aplikací (např. sazba textu, kreslení obrázků, interakce uživatele s operačním systémem…) a programování slouží převážně k lepšímu zvládnutí obsluhy takového systému.

Některé tyto jazyky se svými specifickými vlastnostmi řadí mezi skriptovací jazyky a jiné zase pro svůj převážně popisný charakter mají podobu značkovacího jazyka.

Konkrétněji do této kategorie patří k nim různé shelly (tj. interprety příkazů v příkazové řádce, např. Bash), nástroje pro automatický překlad (například make), jazyky pro řízení grafické úpravy dokumentů (PostScript, TeX), jazyky pro popis počítačové grafiky (POV-Ray, SVG), databázové dotazovací jazyky (SQL) nebo transformační jazyky (XSLT).

Externí odkazy

[editovat | editovat zdroj]