Assembler verzus kompilátor
Vo všeobecnosti je kompilátor počítačový program, ktorý číta program napísaný v jednom jazyku, ktorý sa nazýva zdrojový jazyk, a prekladá ho do iného jazyka, ktorý sa nazýva cieľový jazyk. Tradične bol zdrojovým jazykom jazyk vysokej úrovne, ako je C++, a cieľovým jazykom bol jazyk nízkej úrovne, ako je jazyk symbolických inštrukcií. Existujú však kompilátory, ktoré dokážu skonvertovať zdrojový program napísaný v jazyku Assembly a previesť ho na strojový alebo objektový kód. Takýmito nástrojmi sú assemblery. Takže assemblery aj kompilátory v konečnom dôsledku vytvárajú kód, ktorý možno priamo spustiť na stroji.
Čo je to kompilátor?
Kompilátor je počítačový program, ktorý číta program napísaný v jednom jazyku, ktorý sa nazýva zdrojový jazyk, a prekladá ho do iného jazyka, ktorý sa nazýva cieľový jazyk. Zdrojovým jazykom je najčastejšie jazyk vysokej úrovne a cieľovým jazykom jazyk nízkej úrovne. Takže vo všeobecnosti možno kompilátory považovať za prekladateľov, ktorí prekladajú z jedného jazyka do druhého. Okrem toho kompilátory vykonávajú určité optimalizácie kódu. Typický kompilátor sa skladá z niekoľkých hlavných komponentov. Prvým komponentom je skener (známy aj ako lexikálny analyzátor). Skener načíta program a skonvertuje ho na reťazec tokenov. Druhým komponentom je syntaktický analyzátor. Konvertuje reťazec tokenov do stromu analýzy (alebo abstraktného stromu syntaxe), ktorý zachytáva syntaktickú štruktúru programu. Ďalším komponentom sú sémantické rutiny, ktoré interpretujú sémantiku syntaktickej štruktúry. Nasledujú optimalizácie kódu a konečné generovanie kódu.
Čo je to Assembler?
Assembler je softvér alebo nástroj, ktorý prekladá jazyk assembleru do strojového kódu. Takže assembler je typ kompilátora a zdrojový kód je napísaný v jazyku assembler. Zostavovanie je ľudsky čitateľný jazyk, ale zvyčajne má vzťah jedna k jednej so zodpovedajúcim strojovým kódom. Preto sa o assembleri hovorí, že vykonáva izomorfný (mapovanie z jedného na jeden) preklad. Pokročilé assemblery poskytujú ďalšie funkcie, ktoré podporujú vývoj programov a procesy ladenia. Napríklad typ assemblerov nazývaných makro assemblery poskytuje možnosť makra.
Aký je rozdiel medzi assemblerom a kompilátorom?
Kompilátor je počítačový program, ktorý číta program napísaný v jednom jazyku a prekladá ho do iného jazyka, zatiaľ čo assembler možno považovať za špeciálny typ kompilátora, ktorý do strojového kódu prekladá iba jazyk assembler. Kompilátory zvyčajne vytvárajú strojový spustiteľný kód priamo z jazyka vysokej úrovne, ale assemblery vytvárajú objektový kód, ktorý môže byť potrebné prepojiť pomocou linkerových programov, aby mohol bežať na počítači. Pretože jazyk assembler má mapovanie jedna ku jednej so strojovým kódom, na vytváranie kódu, ktorý beží veľmi efektívne pri príležitostiach, kde je výkon veľmi dôležitý (napríklad pre grafické motory, vstavané systémy s obmedzenými hardvérovými zdrojmi v porovnaní s osobným počítačom) možno použiť assembler. ako mikrovlnky, práčky atď.).