Assembler vs kompilátor
Obecně je kompilátor počítačový program, který čte program napsaný v jednom jazyce, který se nazývá zdrojový jazyk, a překládá jej do jiného jazyka, který se nazývá cílový jazyk. Tradičně byl zdrojovým jazykem jazyk na vysoké úrovni, jako je C ++, a cílovým jazykem byl jazyk na nízké úrovni, jako je například jazyk Shromáždění. Existují však kompilátory, které mohou převést zdrojový program napsaný v jazyce Assembly a převést jej na strojový kód nebo kód objektu. Sestavovatelé jsou takové nástroje. Takže jak kompilátoři, tak kompilátoři nakonec vytvoří kód, který lze přímo spustit na počítači.
Co je překladač?
Kompilátor je počítačový program, který čte program napsaný v jednom jazyce, který se nazývá zdrojový jazyk, a překládá jej do jiného jazyka, který se nazývá cílový jazyk. Zdrojový jazyk je nejčastěji jazyk na vysoké úrovni a cílový jazyk je jazyk na nízké úrovni. Obecně tedy lze kompilátory považovat za překladatele, kteří překládají z jednoho jazyka do druhého. Kompilátoři navíc provedou několik optimalizací kódu. Typický kompilátor se skládá z několika hlavních komponent. První komponentou je skener (známý také jako lexikální analyzátor). Skener čte program a převádí jej na řetězec tokenů. Druhou komponentou je syntaktický analyzátor. Převádí řetězec tokenů na strom analýzy (nebo abstraktní syntaktický strom), který zachycuje syntaktickou strukturu programu. Další komponentou jsou sémantické rutiny, které interpretují sémantiku syntaktické struktury. Následuje optimalizace kódu a generování finálního kódu.
Co je Assembler?
Assembler je software nebo nástroj, který překládá jazyk Assembly do strojového kódu. Takže assembler je typ kompilátoru a zdrojový kód je psán v jazyce Assembly. Sestava je lidsky čitelný jazyk, ale obvykle má vztah jeden ku jednomu s odpovídajícím strojovým kódem. Proto se říká, že assembler provádí izomorfní (one to one mapping) překlad. Pokročilí sestavovatelé poskytují další funkce, které podporují vývoj a ladění programů. Například typ assemblerů nazývaných makro assemblery poskytuje makro funkci.
Jaký je rozdíl mezi Assemblerem a kompilátorem??
Kompilátor je počítačový program, který čte program napsaný v jednom jazyce a překládá jej do jiného jazyka, zatímco assembler lze považovat za speciální typ kompilátoru, který překládá pouze stroj jazyka assembleru do strojového kódu. Kompilátoři obvykle produkují strojový spustitelný kód přímo z jazyka na vysoké úrovni, ale kompilátoři produkují kód objektu, který může být pro propojení na stroji třeba propojit pomocí linker programů. Protože jazyk Assembly má individuální mapování se strojovým kódem, může být assembler použit pro výrobu kódu, který běží velmi efektivně v případech, kdy je výkon velmi důležitý (např. Grafické stroje, vestavěné systémy s omezenými hardwarovými prostředky ve srovnání s osobním počítačem) jako jsou mikrovlnné trouby, pračky atd.).