Created by Jindřich Zdráhal
Text vypracoval Jindřich Zdráhal a konstruktivní kritiku očekává na zdrahal@oaveseli.cz --- Stručný vývoj a rozdělení programovacích jazyků --- Zveřejněno pod licencí WTFPL pokud u konkrétních textů / obrázků není uvedeno jinak.
Způsob zápisu algoritmů, který může být proveden počítačem. Zápis konkrétního algoritmu tímto způsobem 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 provádí 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.
Text převzat z Wikipedie pod licencí CC BY-SA 3.0
Mezi nižší jazyky se počítají jazyky 1. a 2. generace. Jsou strojově orientované. Příkazy jazyka = instrukce procesoru.
Výhody
Nevýhody
Většina jazyků (od 3. generace výš).
Orientace na člověka.
Zapisuje se strukturovaně = srozumitelný zápis.
Není tak závislý na procesoru.
Jazyky hlavně 3. a 4. generace.
Jedná se o posloupnost (sekvenci) příkazů, cykly, větvení (podmínky).
Při programování se používají objekty (data + metody) a vztahy mezi nimi. Další důležité pojmy OOP jsou zapouzdření, polymorfismus, dědičnost, abstrakce.
U těchto jazyků není pevná struktura programu. Jsou definována pravidla a mantinely programu.
Program je množina (ale není to posloupnost) funkcí. Většinou neexistují proměnné, ale jen seznamy dat.
Program je množina pravidel a odvozovacích pravidel. Znají proměnné. Využívají se hlavně v AI.
Zdrojový kód (to co jsme naprogramovali) je za pomoci překladače (kompilátoru, compiler) celé naráz převedeno do strojového kódu (tomu, čemu rozumí procesor) a vznikne samostatně spustitelný program. Překladač při tomto překladu zkontroluje syntaktickou kontrolu celého zdrojového kódu (= jestli je to zapsané podle pravidel daného jazyka). Pokud tam najde chybu, tak zastaví kompilaci a vypíše seznam chyb.
Zdrojový kód není přeložený celý najednou a tak nevzniká samostatně spustitelný program. Interpret převádí zdrojový kód na strojový kód postupně (řádek po řádku). Provádí syntaktickou kontrolu jen tohoto čteného řádku a hned jej provede. Takže se na chyby přijde až při běhu programu a program se tím přeruší.
Spojení obou přístupů. Zdrojový kód se nejprve přeloží překladačem do mezikódu (v Javě se mu říká bytecode). Tento mezikód je v podstatě strojový kód, ale zjednodušený a upravený. Tento mezikód se spustí na virtuálním stroji, který jej postupně interpretuje procesoru. V Javě je to JVM (Java Virtual Machine).
Značkovací jazyk (anglicky markup language) je v informatice prostředek k obohacení textu o dodatečné informace – nejčastěji o významu, struktuře a způsobu zobrazování jednotlivých částí textu. Dodatečné informace se vkládají přímo do textu v podobě značek (anglicky tags), příkazů (anglicky commands) nebo direktiv.
Tradičními představiteli značkovacích jazyků byly nástroje pro formátování textu – programy nroff, troff z operačního systému Unix či typografický systém TeX. Za značkovací jazyk lze označit i PostScript a RTF.
Ukázka
<h1>Nadpis</h1>
<p>Text prvního odstavce se <em>zvýrazněným</em> slovem.</p>
Text převzat z Wikipedie pod licencí CC BY-SA 3.0
Navrženy především k automatizaci úloh. Obecná definice toho, co musí mít skriptovací jazyk neexistuje. Ale obvykle se za skriptovací jazyky považují ty, které mají tyto vlastnosti:
Program napsaný v tomto jazyce se označuje jako skript.
+ není nutné mít nainstalovaný kompilátor a provádět kompilace,
+ snadnější údržba, vývoj a správa kódu,
+ některé skripty umožňují interpretaci kódu z řetězce (typicky je tato funkce pojmenovaná eval)
- nižší rychlost,
- větší paměťová náročnost,
- větší omezení,
- snadné zavlečení chyby a obtížnější hledání.
Text převzat z Wikipedie pod licencí CC BY-SA 3.0
Konstrukce slouží k popisu toho, co jsou informace v dokumentu zač. Tzn., co je nadpis, co je odstavec, co odkaz.
Např.:
Zaměření na to, jak bude výsledný text vypadat.
Např.:
Obsahují i výkonné instrukce na úrovni programovacího jazyka - určitou formu paměti / proměnných a nástroje pro práci s nimi. Zpravidla umožňují velmi detailně popsat vizuální stránku výstupu.
Např.:
Objektově orientované jazyky (OOP) - někde se uvádí jako jazyky 3½. generace
Někdy se uvádí jako jazyky 4. generace
Nejstarší typ programovacího jazyka.
Instrukce jsou tvořeny posloupností nul a jedniček (bitů).
Jazyk strojového kódu je hardwarově závislý.
Obtížné hledání chyb.
Především jednoúčelové programy, obvykle s využitím v matematice a fyzice.
Jazyk nižší úrovně
Obecné příkazy (např. „načti data“, „zapiš data“) jsou zkracovány pomocí symbolických názvů
Příkazy překládá do strojového kódu procesoru speciální program – assembler
Jazyk je také hardwarově závislý
Vyšší úroveň programování (podoba s lidskými jazyky)
Příkazy odvozené z anglických slov
Programátor zapisuje zdrojový kód; překladač provede interpretaci nebo překlad do strojového kódu (strojového jazyka)
Koncepce strukturovaného programování
Jazyky: Fortran, Cobol, C, Pascal, Basic
Vyšší úroveň programovacích jazyků
Využívají mnoho vestavěných funkcí, bývají často napojeny na databázi
Snaha o zjednodušení a zrychlení práce programátora
Jazyky: C++, Java, ...
Neprocedurální programování:
Klíčovým pojmem je rekurze.
Y = 2 + 5
add 2, 5 giving y
let y = 2 + 5;
y = 2+5;
00000011 00001011 00100100 01000011 00001010 00000011 00000011 00000011 00000011 00000010 00000011 00001001 00000111 00000011 00001001 00000011 00000011 00000011 00000011 00010100 00000011 00000011 00000011 00000011
L R2, = F’2’
A R2, = F’5’
ST R2, Y
y = 2 + 5
(+ 2 5)
Ukázky kódu jsou převzaty ze stránky RosettaCode.org pod licencí GNU Free Documentation License 1.2