Programovací jazyk
Author
Albert FloresProgramovací jazyk je umělý jazyk, který slouží k zápisu počítačových programů. Je to soubor pravidel a syntaxe, které umožňují programátorovi komunikovat s počítačem a řídit jeho činnost. Programovací jazyky se používají ve všech oblastech výpočetní techniky, od tvorby webových stránek a mobilních aplikací až po vývoj operačních systémů a softwaru pro vědecké výpočty. Každý programovací jazyk má své specifické vlastnosti, které lze využívat při vývoji programů. Programovací jazyky se vyvíjejí a mění v čase, aby reflektovaly nové technologie a potřeby programátorů. Existuje mnoho různých programovacích jazyků, jako JavaScript, Python, C++ nebo Java. Každý z těchto jazyků má svou vlastní syntaxi a způsob práce. Při výběru programovacího jazyka je důležité zvážit požadovanou funkčnost a efektivitu programu, ale také dostupnost nástrojů a knihoven pro tento jazyk. Programování je důležitou dovedností v dnešním digitálním světě a znalost a ovládání programovacích jazyků mohou zlepšit profesní a kariérní možnosti.
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.
Typy programovacích jazyků
Existuje několik možností kritérií, podle kterých jazyky dělit.
Dle míry abstrakce: * vyšší programovací jazyky (většina jazyků) * nižší programovací jazyky (např. jazyk symbolických adres, částečně VHDL)
Dle způsobu překladu a spuštění: * kompilované programovací jazyky (např. Algol, Fortran, Cobol, PL/I, Pascal, C, Java) ** před spuštěním jsou nejprve kompletně přeloženy kompilátorem ** výsledkem je větší rychlost, ale také větší náročnost na správně zapsaný kód, ** výstupem kompilace je obvykle spustitelný binární kód (. +moreexe, . com, . dll, . so), ze kterého nelze jednoduše zpětně odvodit, jak vypadal původní zdrojový kód. * interpretované programovací jazyky (např. BASIC, Perl, Python, shell, Ruby, PHP) ** interpretované jazyky, které se pouze interpretují (z toho důvodu jsou pomalejší - proto většina jazyků má alespoň nějakou jinou možnost, pokud nejsou stejně zpomalované něčím jiným, jako třeba shell) ** interpretované jazyky, které se překládají, ale pouze do mezikódu, nikoli do strojového kódu počítače (např. Java, Python) ** interpretované jazyky, které se po spuštění za běhu programu překládají do strojového kódu počítače (např. Java, pokud se použije systém JIT) Toto členění není absolutní, řada programovacích jazyků existuje v implementaci jak interpretované, tak kompilované (například zmíněná Java). Navíc jsou oba postupy někdy kombinovány, zdrojový kód je nejprve kompilován do mezikódu, který 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 zaměřeny na omezenou, konkrétní problémovou doménu).
Vyšší programovací jazyky se dále dělí takto: * Procedurální (imperativní) ** Strukturované (např. C, BASIC, Cobol) ** Objektově orientované (např. +more Smalltalk, Java) * Neprocedurální (deklarativní) ** Funkcionální (např. Lisp, Haskell) ** Logické (např. Prolog, Gödel).
Některé programovací jazyky (např. C++, Python, Object Pascal, Rust, Flex) umožňují programátorovi kombinovat různé přístupy. +more Čá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 velmi rozšířený jazyk Java, kde se i jednoduchá funkce musí vyjádřit formou metody třídy.
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říklad Logo, Karel, Baltík, Petr; ostatně 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 Brainfuck. +more 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ř. [url=https://www. ioccc. org/]Obfuscated C Contest[/url]).
Historie
První programovací jazyky existovaly ještě dříve než počítače. Už v 19. +more století se používaly programovatelné tkalcovské stavy nebo perforované papírové válce pro samohrající piána, které implementovaly to, co bychom dnes rozeznali jako vzory doménově orientovaných programovacích jazyků. Začátkem dvacátého století se již data uchovávala pomocí děrných štítků.
V třicátých a čtyřicátých letech byl definován lambda kalkul (Alonzo Church) a Turingův stroj (Alan Turing), což poskytlo matematický základ pro vyjádření definice algoritmu. (Programovací jazyk, který je ekvivalentní Turingovu stroji, se nazývá turingovsky úplný. +more) Po roce 1940 byly vytvořeny první elektricky napájené digitální počítače, přičemž první vyšší programovací jazyk Plankalkül byl vytvořen pro německý počítač Z3 Konrada Zuse.
Další jazyky
Následuje seznam programů a nástrojů, 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 (sazba textu, kreslení obrázků, interakce uživatele s operačním systémem…) a programování slouží převážně k jeho lepšímu ovládnutí.
Externí odkazy
[url=http://merd. sourceforge. +morenet/pixel/language-study/syntax-across-languages. html]Rozdíly v syntaxi běžných (i méně běžných) jazyků[/url] * [url=http://www. root. cz/zpravicky/c-je-nejvyznamnejsim-jazykem-roku-2016-tvrdi-studie-ieee/]C je nejvýznamnějším jazykem roku 2016, tvrdí studie IEEE[/url] * [url=http://ctp. mkprog. eu/cz/]Programovací jazyky[/url] - stručný popis, porovnávání příkazů-operatorů * [url=https://www. ioccc. org/]Obfuscated C Contest, soutěž o nejzáhadnější programy v C[/url].