Programovací jazyky
Z MiS
(Rozdíly mezi verzemi)
m (Přidána kategorie Stránky s obrázky) |
(→Interpretované a kompilované programovací jazyky: Výhody a nevýhody, příklady.) |
||
Řádka 5: | Řádka 5: | ||
Zdrojový kód → instrukce procesoru | Zdrojový kód → instrukce procesoru | ||
* Podle toho, ''kdy'' se překlad provádí, dělíme jazyky na ''interpretované'' a ''kompilované''. | * Podle toho, ''kdy'' se překlad provádí, dělíme jazyky na ''interpretované'' a ''kompilované''. | ||
+ | |||
; Interpretované jazyky | ; Interpretované jazyky | ||
* Programátor vytváří zdrojový kód a předává ho uživateli. | * Programátor vytváří zdrojový kód a předává ho uživateli. | ||
* Uživatel spustí tento kód pomocí interpretu. | * Uživatel spustí tento kód pomocí interpretu. | ||
* Interpret je program, který čte zdrojový kód, překládá ho a ihned spouští. | * Interpret je program, který čte zdrojový kód, překládá ho a ihned spouští. | ||
+ | * Příklady: Python, JavaScript,... | ||
+ | |||
; Kompilované jazyky | ; Kompilované jazyky | ||
* Překlad na posloupnost instrukcí provede programátor. | * Překlad na posloupnost instrukcí provede programátor. | ||
+ | * Příklady: Pascal, C++,... | ||
+ | |||
+ | <div class="Poznamka"> | ||
+ | ; Jak je to s Javou? | ||
+ | |||
+ | Zdrojový kód se překládá (kompiluje) na byte-code, který se odesílá uživateli a ten si jej spouští prostřednictvím virtuálního stroje Javy (JVM). | ||
+ | |||
+ | Java tedy není dobrý příklad ani na jednu skupinu jazyků, přebírá část výhod a část nevýhod z obou skupin. | ||
+ | </div> | ||
+ | |||
+ | ; Výhody interpretovaných | ||
+ | * Program v interpretovaných jazycích je snadno přenositelný mezi platformami, stačí použít správný interpret (viz třeba JavaScript). | ||
+ | * Při hledání chyb je k dispozici přímo zdrojový kód, u některých vývojových prostředí můžete dokonce přímo za běhu kód upravovat a zkoumat jeho chování. To u kompilovaných není možné, protože zdrojový kód již nemáme k dispozici. | ||
+ | |||
+ | ; Výhody kompilovaných | ||
+ | * Běh programů je rychlejší, nemusí se provádět překlad. Bývá také méně náročný na operační paměť. | ||
+ | * U interpretovaných jazyků uživatel dostává do ruky zdrojový kód, může jej číst, modifikovat, upravovat. U některých projektů to není vhodné. | ||
+ | * U kompilovaných jazyků uživatel nepotřebujete interpret, spouštění je jednodušší. | ||
+ | |||
+ | <div class="Upozorneni"> | ||
+ | Souhrn: | ||
+ | * Interpretované jazyky jsou obvykle vhodné pro menší projekty nebo tam, kde potřebujeme rychle nějaký program zapsat, často si program děláme pro sebe nebo svoji firmu. Nezastupitelné jsou i pro svoji přenositelnost. | ||
+ | * Kompilované jazyky jsou obvykle vhodné pro větší projekty (rychlejší běh) a kde program napíši jednou a pak už není třeba provádět změny. | ||
+ | </div> | ||
+ | |||
[[File:InterpretXkomp.png]] | [[File:InterpretXkomp.png]] | ||
Verze z 10. 11. 2015, 12:52
Obsah |
Interpretované a kompilované programovací jazyky
- Programátor píše zdrojový kód jazyka. Tedy „písmenka“ srozumitelné člověku. Tomu ale počítač nerozumí. Je tedy potřeba zdrojový kód přeložit a vytvořit tak odpovídající posloupnost instrukcí procesoru:
Zdrojový kód → instrukce procesoru
- Podle toho, kdy se překlad provádí, dělíme jazyky na interpretované a kompilované.
- Interpretované jazyky
- Programátor vytváří zdrojový kód a předává ho uživateli.
- Uživatel spustí tento kód pomocí interpretu.
- Interpret je program, který čte zdrojový kód, překládá ho a ihned spouští.
- Příklady: Python, JavaScript,...
- Kompilované jazyky
- Překlad na posloupnost instrukcí provede programátor.
- Příklady: Pascal, C++,...
- Jak je to s Javou?
Zdrojový kód se překládá (kompiluje) na byte-code, který se odesílá uživateli a ten si jej spouští prostřednictvím virtuálního stroje Javy (JVM).
Java tedy není dobrý příklad ani na jednu skupinu jazyků, přebírá část výhod a část nevýhod z obou skupin.
- Výhody interpretovaných
- Program v interpretovaných jazycích je snadno přenositelný mezi platformami, stačí použít správný interpret (viz třeba JavaScript).
- Při hledání chyb je k dispozici přímo zdrojový kód, u některých vývojových prostředí můžete dokonce přímo za běhu kód upravovat a zkoumat jeho chování. To u kompilovaných není možné, protože zdrojový kód již nemáme k dispozici.
- Výhody kompilovaných
- Běh programů je rychlejší, nemusí se provádět překlad. Bývá také méně náročný na operační paměť.
- U interpretovaných jazyků uživatel dostává do ruky zdrojový kód, může jej číst, modifikovat, upravovat. U některých projektů to není vhodné.
- U kompilovaných jazyků uživatel nepotřebujete interpret, spouštění je jednodušší.
Souhrn:
- Interpretované jazyky jsou obvykle vhodné pro menší projekty nebo tam, kde potřebujeme rychle nějaký program zapsat, často si program děláme pro sebe nebo svoji firmu. Nezastupitelné jsou i pro svoji přenositelnost.
- Kompilované jazyky jsou obvykle vhodné pro větší projekty (rychlejší běh) a kde program napíši jednou a pak už není třeba provádět změny.
Vyšší a nižší programovací jazyky
Strojový kód
Charakteristika:
- Není třeba překlad, kód lze přímo umístit do paměti.
- Procesor čte kód a provádí ho přímo.
- Procesor:
- čte z paměti posloupnosti byte (čísla)
- a podle čísla rozhoduje, co má dělat.
číslo → instrukce
- K zápisu instrukcí je třeba vymyslet pořadí bitů a znát jejich význam.
- Někdy řazen mezi nižší programovací jazyky, ale není třeba překládat ani kompilovat.
- Zápis programu ve strojovém kódu uvidíme, když si otevřeme spustitelný soubor v hexadecimálním editoru.
Příklad:
-
8B 07
... přesune číslo v registru AX do paměti na adresu uloženou v registru BX
Nižší programovací jazyky
Charakteristika:
- Výsledný zdrojový kód je vždy závislý na konkrétním typu procesoru.
- Jiný typ procesoru má jiné instrukce.
- Jeden příkaz se přepíše přesně na jednu instrukci procesoru.
několikapísmenný název → instrukce
- Označení „assembler“.
- Oproti strojovému kódu nabízí:
- Instrukcím jsou přiřazeny názvy.
- Pojmenování míst v paměti (proměnné).
- Nemusíme psát přímo adresy v paměti.
- Můžeme adresy na začátku pojmenovat a pak používat jména.
Příklad:
-
MOV AX, [BX]
... přesune číslo v registru AX do paměti na adresu uloženou v registru BX
Vyšší programovací jazyky
Charakteristika:
- Zdrojový kód není závisly na typu procesoru.
- Stejný kód lze po změně překladače přeložit pro jiný typ procesoru.
- Příkazy jsou slovní, jsou blíže přirozenému jazyku.
- Jeden příkaz se přeloží na posloupnost instrukcí.
příkaz → posloupnost více instrukcí.
- První FORTRAN (1956)
- Velká skupina, i mezi nimi jsou rozdíly:
- mají blíže k přirozenému jazyku, jsou vzdálené principu práce počítače (Java, Pascal, PHP, SQL,...)
- mají blíže instrukcím procesoru (C,...)
Příklad:
-
if (a > 4) b--;
... překladač přepíše na delší posloupnost instrukcí procesoru:- Přesun obsahu proměnné A do registru.
- Odečtení hodnoty 4 od obsahu registru.
- Porovnání hodnoty registru proti 0.
- Vyhodnocení výsledku.
- Skok na správné místo v paměti, kde je další kód.
- Provedení dalšího kódu
- Buď odečtení jedničky od hodnoty proměnné B (opět několika instrukcemi).
- Nebo pokračování v kódu programu bez modifikace proměnné B.