Programovací jazyk

formální jazyk určený k zadávání pokynů (programu) počítači From Wikipedia, the free encyclopedia

Programovací jazyk
Remove ads
Remove ads

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.

Thumb
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 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.

Remove ads

Historie

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. a 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.

Remove ads

Typy programovacích jazyků

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

Dle míry abstrakce

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

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í

  • 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

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

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).

Remove ads

Další jazyky

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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads