Kompilátor (programovanie): Rozdiel medzi revíziami

z Wikipédie, slobodnej encyklopédie
Smazaný obsah Přidaný obsah
Chiak (diskusia | príspevky)
d odobratá Kategória:Informatika pomocou použitia HotCat
Etki (diskusia | príspevky)
doplnenie
Riadok 1: Riadok 1:
[[Obrázok:Ideal compiler.png|right|thumb|Ideálny kompilátor (po anglicky)]]
[[Obrázok:Ideal compiler.png|right|thumb|Ideálny kompilátor (po anglicky)]]


'''Kompilátor''' alebo '''kompilujúci program''' alebo '''prekladač''' je [[program]], ktorý dokáže preložiť [[zdrojový kód]] napísaný v niektorom programovacom jazyku do vykonateľnej formy, napríklad do [[strojový kód|strojového kódu]].
'''Kompilátor''' alebo '''kompilujúci program''' alebo '''prekladač''' je [[program]], ktorý dokáže preložiť [[zdrojový kód]] napísaný v niektorom programovacom jazyku do iného programovacieho jazyka, najčastejšie do [[strojový kód|strojového kódu]]. Ak prekladač vykonáva preklad z vyššieho programovacieho jazyka do nižšieho, hovoríme, že ide o [[preklad nadol]]. Ak preklad prebieha z nižšieho programovacieho jazyka do vyššieho, hovoríme, že ide o [preklad nahor] a takýto prekladač voláme [[dekompilátor]] alebo opačný kompilátor. Ak je zdrojový a cieľový jazyk približne rovnako mohutný, takýto prekladač nazývame [[predkompilátor]] alebo kompilátor 1:1. AK je cieľom prekladu získanie optimálneho kódu, takémuto prekladaču hovoríme o [[optimalizačný kompilátor]].

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]]).
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]]).

Verzia z 12:18, 19. marec 2011

Ideálny kompilátor (po anglicky)

Kompilátor alebo kompilujúci program alebo prekladač je program, ktorý dokáže preložiť zdrojový kód napísaný v niektorom programovacom jazyku do iného programovacieho jazyka, najčastejšie do strojového kódu. Ak prekladač vykonáva preklad z vyššieho programovacieho jazyka do nižšieho, hovoríme, že ide o preklad nadol. Ak preklad prebieha z nižšieho programovacieho jazyka do vyššieho, hovoríme, že ide o [preklad nahor] a takýto prekladač voláme dekompilátor alebo opačný kompilátor. Ak je zdrojový a cieľový jazyk približne rovnako mohutný, takýto prekladač nazývame predkompilátor alebo kompilátor 1:1. AK je cieľom prekladu získanie optimálneho kódu, takémuto prekladaču hovoríme o optimalizačný kompilátor.

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. Existujú aj kombinované riešenia, kedy sa najprv prekladá do pomocného kódu, ktorý sa interpretuje v čase behu (napr. Java).

Kompilátor poväčšine vykonáva niekoľko, prípadne všetky z nasledujúcich činností: lexikálna analýza, preprocesing, parsing, sémantická analýza, generovanie kódu a jeho optimalizácia.

Pozri aj