Kompilátor (programovanie): Rozdiel medzi revíziami
Smazaný obsah Přidaný obsah
Bez shrnutí editace |
upresnenie niektorých informácií Značka: editor wikitextu 2017 |
||
Riadok 1:
[[Obrázok:Ideal compiler.png|right|thumb|Ideálny kompilátor (po anglicky)]]
'''Kompilátor''' alebo '''kompilujúci program'''
Existuje však mnoho rôznych typov kompilátorov. Pokiaľ zkompilovaný program môže bežať na počítači, ktorého [[CPU]] alebo [[operačný systém]] sú odlišné od počítača, na ktorom beží kompilátor, hovoríme [[Krížový kompilátor|krížovom kompilátore]]. Program, ktorý prekladá z jazyka nižšej úrovne do jazyka vyššej úrovne, sa nazýva [[dekompilátor]]. Program, ktorý prekladá medzi dvoma vysokoúrovňovými jazykmi sa zvyčajne nazýva [[transpliter]].
Kompilátor musí vykonávať dve základné činnosti: analýzu zdrojového kódu a vytváranie ekvivalentného cieľového kódu (syntéza). Cieľom analýzy je získať informácie o stavbe programu, ktoré sa počas syntézy použijú na zostavenie cieľového kódu. Analýza sa najčastejšie vykonáva na troch úrovniach: [[lexikálna analýza]], [[syntaktická analýza]] a [[Sémantická analýza (informatika)|sémantická analýza]]. Výstupom týchto procesov môže byť tzv.[[intermediárny kód]]. Analytická časť kompilátoru sa niekedy nazýva aj prednou časťou (angl.: front end). Samotné [[Generovanie kódu|generovanie cieľového kódu]] môže byť doplnené (prípadne predchádzané) [[Optimalizácia (informatika)|optimalizačnými]] operáciami.
Program preložený do strojového kódu len málokedy obsahuje všetky [[procedúry]] a [[funkcie]] potrebné na jeho spustenie. Mnohé funkcie a procedúry sa nachádzajú vo vopred preložených súboroch, ktoré nazývame [[knižnice]]. Aby bolo možné program spustiť, je potrebné prepojiť relatívne odkazy na procedúry a funkcie so skutočnými adresami. Túto činnosť vykonáva spájací program, ktorý tiež nazývame [[linker]].
Alternatívnym spôsobom vykonávania kódu je interpretácia zdrojového kódu v čase behu programu. Program, ktorý tento preklad zabezpečuje, sa nazýva [[Interpreter (programovanie)|interpreter]]. Existujú aj kombinované riešenia, kedy sa najprv prekladá do pomocného kódu, ktorý sa interpretuje v čase behu (napr. [[Java (programovací jazyk)|Java]]).
== Pozri aj ==
|