Existuje mnoho spôsobov, ako rozlíšiť programovacie jazyky. Na začiatok spadajú do rôznych paradigiem: funkčné, objektovo orientované a ďalšie.

Programovací jazyk môžete klasifikovať aj podľa jeho metódy prekladu, čo má veľký vplyv na výkon jazyka. Kompilované programovacie jazyky sú zvyčajne rýchlejšie ako interpretované. Takže v situáciách, ako je vývoj hier, ktoré vyžadujú rýchlosť, vývojári majú tendenciu používať kompilované jazyky.

Čo je preklad?

Proces prekladu konvertuje kód napísaný programátorom na strojový kód, ktorý môže počítač spustiť. Strojový kód je typ nízkoúrovňového jazyka, ktorý má jednotky a nuly. Prekladateľ teda prevedie kód vysokej úrovne, ktorý vytvoríte v programovacom jazyku, na strojový kód.

Bez prekladačov by ste museli kódovať v strojovom jazyku. Každý vysokoúrovňový programovací jazyk, ktorý poznáte, používa jednu z troch metód prekladu: kompilátor, tlmočník alebo hybrid oboch.

Čo je to kompilátor?

Kompilátor je softvér, ktorý konvertuje zdrojový kód napísaný v jazyku vysokej úrovne na kód nízkej úrovne na spustenie.

instagram viewer

Vyššie uvedený diagram predstavuje kompilátor v jeho najzákladnejšej forme. Kompilátor má niekoľko fáz. Každá fáza transformuje kód z jedného stavu do druhého. Cieľom každej fázy kompilátora je vytvoriť výstup, s ktorým bude nasledujúca fáza ľahšie manipulovať. Všeobecná štruktúra kompilátora je nasledovná:

  • Skener: táto fáza vezme prúd znakov a zoskupí ich do tokenov, ktoré predstavujú identifikátory, reťazcové literály atď.
  • Analyzátor: táto fáza zoskupuje tokeny na základe gramatiky zdrojového programovacieho jazyka. Vytvára abstraktný strom syntaxe, ktorý je zbierkou výrazov, ktoré tvoria program.
  • Sémantika: táto fáza vykonáva sémantickú analýzu abstraktného syntaktického stromu (AST). Používa pravidlá zdrojového jazyka na pridanie významu priraďovaním typov k výrazom AST a kontrolou ich platnosti. AST sa potom stane prechodnou reprezentáciou.
  • Intermediate Representation (IR): Táto fáza konvertuje zdrojový kód pôvodného programu na strojový kód. Vytvára zjednodušenú verziu kódu zostavy. IR používa jeden alebo viac optimalizátorov na zlepšenie IR kódu a na zhromažďovanie informácií pre počítač, na ktorom beží. Optimalizátor môže zefektívniť, zrýchliť alebo dokonca zmenšiť program.
  • Generátor kódu: táto fáza spotrebuje optimalizovaný IR kód a prevedie ho na strojový kód.

Ktoré programovacie jazyky používajú kompilátory?

Niektoré populárne kompilované programovacie jazyky zahŕňajú:

  • C
  • C++
  • Choď
  • Ada
  • Fortran
  • COBOL
  • Lisp
  • Cieľ-C
  • Swift

Jednou z výhod používania kompilovaného jazyka je, že identifikuje chyby počas kompilácie. To vám umožní opraviť takéto chyby a potom sa pokúsiť skompilovať program znova. Kompilované jazyky majú menšiu pravdepodobnosť zlyhania, keď sa začnú vykonávať. Tieto jazyky ani nevygenerujú program na spustenie, ak má zdrojový kód chyby syntaxe. Ale sémantické chyby a iné formy run-time chyby to prekonajú.

Kompilované jazyky sa po kompilácii spúšťajú veľmi rýchlo.

Čo je to tlmočník?

Tlmočník je program, ktorý prekladá a vykonáva jeden riadok kódu naraz. Tento proces sa opakuje, kým tlmočník nepríde na posledný riadok kódu v danom programe alebo skripte.

Ako môžete vidieť na obrázku vyššie, tlmočník má dva vstupy. Najprv zaberie celý zdrojový kód (program). Potom prečíta prvý riadok programu (ako vstup), preloží ho a vykoná. Ak sa tento riadok vykoná správne, presunie sa na ďalší riadok v programe alebo skripte.

Na rozdiel od kompilátora, tlmočník neprekladá celý program do strojového kódu. Namiesto toho analyzuje a analyzuje daný riadok kódu pred jeho spustením. Tlmočník by mal začať spúšťať program – najmä väčší – skôr, ako kompilátor dokončí jeho preklad.

Ktoré programovacie jazyky používajú tlmočníkov?

Niektoré populárne interpretované programovacie jazyky zahŕňajú:

  • Python
  • JavaScript
  • Perl
  • MATLAB
  • ZÁKLADNÉ

Hoci tlmočník začne vykonávať kód rýchlejšie, aj tak zlyhá, ak narazí na chybu. Ako programátor by ste museli opraviť takúto chybu a reštartovať program. Táto udalosť nastane vždy, keď tlmočník narazí na novú chybu. Niektoré chyby môžu zostať nečinné, ak súvisia so zriedkavým súborom okolností. V takých prípadoch, testovanie je dôležitejšie ako kedykoľvek predtým.

Vývoj tlmočníkov je zvyčajne jednoduchší ako kompilátorov a ich programy sú vďaka dizajnu prenosnejšie.

Čo je hybridný preklad?

Hybridný preklad využíva kompilátora a tlmočníka. Hybridný preklad kompiluje zdrojový kód na vysokej úrovni do formy nižšej úrovne, ako je napríklad bytecode. Potom použije tlmočníka na spustenie tohto bajtkódu.

Hybridný preklad sa môže líšiť od jedného programovacieho jazyka k druhému, ale bude používať túto všeobecnú štruktúru. Jedným z najpopulárnejších programovacích jazykov, ktoré využívajú hybridný preklad, je Java. Kompilátor Java preloží svoj zdrojový kód do Bytový kód Java Virtual Machine (JVM).. Tlmočník potom preloží bajtový kód JVM do strojového kódu.

Ktoré programovacie jazyky používajú hybridný preklad?

Niektoré populárne hybridné programovacie jazyky zahŕňajú:

  • Java
  • C#
  • Visual Basic
  • Erlang
  • F#

S hybridným prekladom získate to najlepšie z oboch svetov. Prvé skompilovanie kódu vám umožní vyriešiť chyby pri najbližšej príležitosti. Bytový kód, ktorý vytvárajú hybridné kompilátory, sa dá ľahšie interpretovať ako zdrojový kód programu na vysokej úrovni.

Hodnota poznania rôznych metód prekladu

Mali by ste rozumieť konkrétnej metóde prekladu, ktorú jazyk používa, najmä ak ju používate pre nový projekt. Metóda jazykového prekladu je hlavnou súčasťou identity programovacieho jazyka. Môže to ovplyvniť spôsob distribúcie programu a spôsob, akým ho budú používatelia spúšťať.

Každý prekladateľský prístup má svoje výhody. Najlepšie programovacie jazyky ako C++, Python a Java používajú rôzne metódy prekladu. Popri paradigme jazyka je jeho prekladová metóda jednou z najdôležitejších vlastností, o ktorých by ste si mali byť vedomí.

Existuje niekoľko paradigiem, ktoré môže programovací jazyk používať. Väčšina špičkových programovacích jazykov sú jazyky s viacerými paradigmami; podporujú používanie dvoch alebo viacerých odlišných paradigiem. Tri z najpopulárnejších paradigiem sú imperatívne, objektovo orientované a funkčné programovanie.