Programovací jazyky

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Skriptovací jazyky: Doplnění, že skriptovací jazyky nepotřebují deklaraci proměnných.)
m (Vyšší programovací jazyky: Upřesnění data uvedení Fortranu.)
 
(Není zobrazeno 5 mezilehlých verzí od 1 uživatele.)
Řádka 10: Řádka 10:
 
* 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,...
+
* Příklady: Python, PHP, JavaScript,...
  
 
; Kompilované jazyky
 
; Kompilované jazyky
Řádka 27: Řádka 27:
 
* Program v interpretovaných jazycích je snadno přenositelný mezi platformami, stačí použít správný interpret (viz třeba JavaScript).
 
* 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.
 
* 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.
 +
* Překladač bývá jednodušší, protože v reálném čase překladu ví, s jakými konkrétními daty pracuje. Překladač kompilovaných jazyků bývá komplexnější, protože výsledný strojový kód musí umět zpracovat jakákoli vstupní data (v době překladu ještě nevíme, jaká konkrétní data budeme zpracovávat).
  
 
; Výhody kompilovaných
 
; 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ěť.
 
* 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živatelům nemusíme předat zdrojový kód. Pokud považujeme zdrojový kód za své „know-how“, je to výhoda. (Zdrojový kód ale poskytnout můžeme, pokud chceme.)
* U kompilovaných jazyků uživatel nepotřebujete interpret, spouštění je jednodušší.
+
* U kompilovaných jazyků uživatel nemusí mít nainstalovaný interpret, spouštění je jednodušší.
  
<div class="Upozorneni">
+
<div class="Poznamka">
 
Souhrn:  
 
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.
+
* Interpretované jazyky jsou obvykle vhodné pro menší, jednorázové projekty, které rychle napíšeme, odladíme a pak už jen udržujeme. Často takové programy děláme pro sebe nebo svoji firmu. Výhodou interpretovaných jazyků je přenositelnost mezi platformami.
* Kompilované jazyky jsou obvykle vhodné pro větší projekty (rychlejší běh) a&nbsp;kde program napíši jednou a pak už není třeba provádět změny.
+
* Kompilované jazyky jsou obvykle vhodné pro větší projekty, na kterých spolupracují větší týmy programátorů. Nabízí rychlejší běh aplikace a umožňují precizněji popsat a kontrolovat rozhraní mezi jednotlivými částmi aplikace. Snáze se také v&nbsp;kódu zorientujeme při aktualizacích po delší době.
 +
</div>
 +
 
 +
<div class="Varovani">
 +
To, že je nějaký jazyk vhodný pro menší projekty neznamená, že by v&nbsp;něm nešly psát velké projekty. Například v&nbsp;Pythonu, který byl navržen jako skriptovací jazyk pro výuku programování se dnes běžně píše backend rozsáhlých webových aplikací. Psaní rozsáhlých aplikací je u těchto jazyků náročnější na pečlivost programátorů a striktní dodržování konvencí.
 
</div>
 
</div>
  
Řádka 84: Řádka 89:
 
* Jeden příkaz se přeloží na posloupnost instrukcí.
 
* Jeden příkaz se přeloží na posloupnost instrukcí.
 
  příkaz &rarr; posloupnost více instrukcí.
 
  příkaz &rarr; posloupnost více instrukcí.
*První FORTRAN (1956)
+
* První byl FORTRAN &mdash; vývoj 1953-1957
*Velká skupina, i mezi nimi jsou rozdíly:
+
* 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,...)
+
** mají blíže k přirozenému jazyku, jsou vzdálené principu práce počítače (Java, Pascal, PHP,...)
**mají blíže instrukcím procesoru (C,...)
+
** mají blíže instrukcím procesoru (C,...)
<div class="Priklad">Příklad:
+
<div class="Priklad">
* <code>if (a > 4) b--; </code> ... překladač přepíše na delší posloupnost instrukcí procesoru:
+
Příklad:
**Přesun obsahu proměnné A do registru.
+
if (a > 4) {
**Odečtení hodnoty 4 od obsahu registru.
+
    b--;
**Porovnání hodnoty registru proti 0.
+
}
**Vyhodnocení výsledku.
+
 
**Skok na správné místo v paměti, kde je další kód.
+
Překladač vytvoří delší posloupnost instrukcí procesoru:
**Provedení dalšího kódu
+
*Přesun obsahu proměnné A do registru.
***Buď odečtení jedničky od hodnoty proměnné B (opět několika instrukcemi).
+
*Odečtení hodnoty 4 od obsahu registru.
***Nebo pokračování v kódu programu bez modifikace proměnné B.
+
*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.
 
</div>
 
</div>
  

Aktuální verze z 24. 9. 2024, 07:21


Obsah

Interpretované a kompilované programovací jazyky

Zdrojový kód → instrukce procesoru
Interpretované jazyky
Kompilované jazyky
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
Výhody kompilovaných

Souhrn:

  • Interpretované jazyky jsou obvykle vhodné pro menší, jednorázové projekty, které rychle napíšeme, odladíme a pak už jen udržujeme. Často takové programy děláme pro sebe nebo svoji firmu. Výhodou interpretovaných jazyků je přenositelnost mezi platformami.
  • Kompilované jazyky jsou obvykle vhodné pro větší projekty, na kterých spolupracují větší týmy programátorů. Nabízí rychlejší běh aplikace a umožňují precizněji popsat a kontrolovat rozhraní mezi jednotlivými částmi aplikace. Snáze se také v kódu zorientujeme při aktualizacích po delší době.

To, že je nějaký jazyk vhodný pro menší projekty neznamená, že by v něm nešly psát velké projekty. Například v Pythonu, který byl navržen jako skriptovací jazyk pro výuku programování se dnes běžně píše backend rozsáhlých webových aplikací. Psaní rozsáhlých aplikací je u těchto jazyků náročnější na pečlivost programátorů a striktní dodržování konvencí.

InterpretXkomp.png

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.
číslo → instrukce
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.
několikapísmenný název → instrukce
Příklad:
  • MOV AX, [BX] ... přesune číslo v registru AX do paměti na adresu uloženou v registru BX

Podrobnější příklad viz CPU → Procesor z pohledu SW.

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říkaz → posloupnost více instrukcí.

Příklad:

if (a > 4) {
   b--;
}

Překladač vytvoří 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.

Skriptovací programovací jazyky (a ty ostatní)

Skriptovací jazyky

Přesto, že skriptovací jazyky byly původně koncipovány pro psaní skriptů, je běžné, že se některé z nich dnes používají pro rozsáhlé aplikace. Typickými příklady jsou PHP či Python. V takovém případě jejich syntaxe klade větší nároky na pečlivou dokumentaci a dodržování konvencí a dohod v týmu ze strany každého programátora.

Ostatní jazyky (ne-skriptovací)

Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje