Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Tlmočníci:
* Vzťah: Tlmočníci sú ako kompilátory, ale namiesto výroby strojového kódu priamo vykonávajú zdrojový kód.
* Rozdiel: Kompilátory prekladajú celý program naraz, zatiaľ čo tlmočníci vykonávajú každý riadok jeden po druhom.
* Príklad: Python, JavaScript, Ruby
2. Zostava:
* Vzťah: Zostavovatelia prekladajú jazyk montáže (kód nízkej úrovne) do strojového kódu a pôsobia ako most medzi kódom čitateľným človekom a jazykom počítača.
* Rozdiel: Kompilátory pracujú s jazykmi na vysokej úrovni, zatiaľ čo zostavovatelia sa zaoberajú pokynmi na nízkej úrovni.
* Príklad: NASM, MASM
3. Transpilers:
* Vzťah: Transpilery alebo kompilátory zdroja na zdroj, prevádzkujte kód z jedného programovacieho jazyka na druhý.
* Rozdiel: Namiesto výroby strojového kódu výstupujú v inom jazyku na vysokej úrovni.
* Príklad: Babel (TransPiles JavaScript Code), TypeScript (TransPiles na JavaScript), Coffeescript (Transpiles na JavaScript)
4. Predprocesory:
* Vzťah: Preprocesory upravujú zdrojový kód pred jeho zostavením. Môžu definovať makry, obsahovať externé súbory a manipulovať s podmienenou kompiláciou.
* Rozdiel: Používajú sa ako krok predbežného spracovania pred skutočným procesom kompilácie.
* Príklad: C Preprocesor, SASS (Preprocesor pre CSS)
5. Dekompilátory:
* Vzťah: Dekompilátory sú opakom kompilátorov. Pokúšajú sa obrátiť stroj strojného stroja späť do jazyka na vysokej úrovni.
* Rozdiel: Dekompilátori často strácajú informácie počas procesu, čo vedie k menej čitateľnému kódu.
* Príklad: Ida Pro, Ghidra
6. Linkery:
* Vzťah: Linkery kombinujú zostavený kód z viacerých súborov do jedného spustiteľného súboru.
* Rozdiel: Nie sú súčasťou samotného kompilačného procesu, ale sú rozhodujúce pre budovanie kompletného programu.
* Príklad: GNU LD, Microsoft Linker
Všetky tieto nástroje majú podobný cieľ konvertovať kód z jednej formy na druhú, čo z nich robí blízkych príbuzných rodine kompilátora. Každý z nich však má špecifické úlohy a pracuje na rôznych úrovniach abstrakcie.