Existuje mnoho způsobů, jak rozlišit programovací jazyky. Pro začátek spadají do různých paradigmat: funkční, objektově orientované a další.

Programovací jazyk můžete také klasifikovat podle jeho metody překladu, což má velký vliv na výkon jazyka. Kompilované programovací jazyky jsou obvykle rychlejší než ty interpretované. Takže v situacích, jako je vývoj her, které vyžadují rychlost, vývojáři mají tendenci používat kompilované jazyky.

Co je překlad?

Proces překladu převádí kód napsaný programátorem na strojový kód, který může počítač spustit. Strojový kód je druh nízkoúrovňového jazyka, který má jedničky a nuly. Překladač tedy převede vysokoúrovňový kód, který vytvoříte v programovacím jazyce, na strojový kód.

Bez překladačů byste museli kódovat ve strojovém jazyce. Každý programovací jazyk na vysoké úrovni, který znáte, používá jednu ze tří metod překladu: kompilátor, tlumočník nebo hybrid obou.

Co je to kompilátor?

Kompilátor je software, který převádí zdrojový kód napsaný v jazyce vysoké úrovně na kód nízké úrovně pro spuštění.

Výše uvedený diagram představuje kompilátor v jeho nejzákladnější podobě. Kompilátor má několik fází. Každá fáze transformuje kód z jednoho stavu do druhého. Cílem každé fáze kompilátoru je vytvořit výstup, se kterým bude následná fáze snadněji manipulovat. Obecná struktura kompilátoru je následující:

  • Skener: tato fáze bere proud znaků a seskupuje je do tokenů, které představují identifikátory, řetězcové literály a tak dále.
  • Analyzátor: tato fáze seskupuje tokeny na základě gramatiky zdrojového programovacího jazyka. Vytváří abstraktní syntaktický strom, který je sbírkou výrazů, které tvoří program.
  • Sémantika: tato fáze provádí sémantickou analýzu abstraktního syntaktického stromu (AST). Používá pravidla zdrojového jazyka k přidání významu tím, že přiřazuje typy k výrazům AST a kontroluje jejich platnost. AST se pak stává přechodnou reprezentací.
  • Intermediate Representation (IR): Tato fáze převádí zdrojový kód původního programu na strojový kód. Vytváří zjednodušenou verzi kódu sestavení. IR používá jeden nebo více optimalizátorů ke zlepšení IR kódu a ke shromažďování informací pro stroj, na kterém běží. Optimalizátor může udělat program efektivnější, rychlejší nebo dokonce menší.
  • Generátor kódu: tato fáze spotřebovává optimalizovaný IR kód a převádí jej na strojový kód.

Které programovací jazyky používají kompilátory?

Některé populární kompilované programovací jazyky zahrnují:

  • C
  • C++
  • Jít
  • Ada
  • Fortran
  • COBOL
  • Lisp
  • Cíl-C
  • Rychlý

Jednou z výhod použití kompilovaného jazyka je to, že identifikuje chyby během kompilace. To vám umožní opravit takové chyby a poté se pokusit program zkompilovat znovu. Kompilované jazyky jsou méně pravděpodobné, že selžou, jakmile se začnou provádět. Tyto jazyky ani nevygenerují program ke spuštění, pokud má zdrojový kód syntaktické chyby. Ale sémantické chyby a další formy run-time chyby se přes to dostanou.

Kompilované jazyky se po kompilaci také spouštějí velmi rychle.

Co je to tlumočník?

Interpret je program, který překládá a provádí jeden řádek kódu najednou. Tento proces se opakuje, dokud interpret nedorazí na poslední řádek kódu v daném programu nebo skriptu.

Jak můžete vidět z výše uvedeného diagramu, tlumočník má dva vstupy. Nejprve zabere celý zdrojový kód (program). Poté přečte první řádek programu (jako vstup), přeloží a provede jej. Pokud se tento řádek provede správně, přesune se na další řádek v programu nebo skriptu.

Na rozdíl od kompilátoru, interpret nepřekládá celý program do strojového kódu. Místo toho analyzuje a analyzuje daný řádek kódu před jeho spuštěním. Interpret by měl začít spouštět program – zejména větší – ještě předtím, než kompilátor dokončí jeho překlad.

Které programovací jazyky používají tlumočníky?

Některé populární interpretované programovací jazyky zahrnují:

  • Krajta
  • JavaScript
  • Perl
  • MATLAB
  • ZÁKLADNÍ

Přestože překladač začne provádět kód rychleji, přesto selže, pokud narazí na chybu. Jako programátor byste takovou chybu museli opravit a restartovat program. K této události dochází pokaždé, když interpret narazí na novou chybu. Některé chyby mohou zůstat nečinné, pokud se týkají vzácného souboru okolností. V takových případech, testování je důležitější než kdy jindy.

Interprety se obvykle vyvíjejí snadněji než kompilátory a jejich programy jsou díky návrhu lépe přenosné.

Co je hybridní překlad?

Hybridní překlad využívá kompilátor a tlumočník. Hybridní překlad překládá zdrojový kód na vysoké úrovni do formy nižší úrovně, jako je bajtkód. Ke spuštění tohoto bajtkódu pak použije interpret.

Hybridní překlad se může v jednotlivých programovacích jazycích lišit, ale bude používat tuto obecnou strukturu. Jedním z nejpopulárnějších programovacích jazyků, které používají hybridní překlad, je Java. Kompilátor Java překládá jeho zdrojový kód do Bytový kód Java Virtual Machine (JVM).. Interpret pak přeloží bajtkód JVM do strojového kódu.

Které programovací jazyky používají hybridní překlad?

Některé populární hybridní programovací jazyky zahrnují:

  • Jáva
  • C#
  • Visual Basic
  • Erlang
  • F#

S hybridním překladem získáte to nejlepší z obou světů. První kompilace kódu vám umožní vyřešit chyby při nejbližší příležitosti. Bytekód, který vytvářejí hybridní kompilátory, je snazší interpretovat než zdrojový kód programu na vysoké úrovni.

Hodnota znalosti různých metod překladu

Měli byste rozumět konkrétní metodě překladu, kterou jazyk používá, zejména pokud ji používáte pro nový projekt. Metoda jazykového překladu je hlavní součástí identity programovacího jazyka. Může ovlivnit způsob, jakým distribuujete svůj program a jak jej budou uživatelé spouštět.

Každý překladatelský přístup má své výhody. Nejlepší programovací jazyky jako C++, Python a Java používají různé metody překladu. Vedle paradigmatu jazyka je jeho překladatelská metoda jednou z nejdůležitějších vlastností, které byste si měli být vědomi.

Existuje několik paradigmat, která může programovací jazyk používat. Většina špičkových programovacích jazyků jsou jazyky s více paradigmaty; podporují použití dvou nebo více odlišných paradigmat. Tři z nejpopulárnějších paradigmat jsou imperativní, objektově orientované a funkční programování.