Rozdíl mezi assemblerem a kompilátorem

Rozdíl mezi assemblerem a kompilátorem
Rozdíl mezi assemblerem a kompilátorem

Video: Rozdíl mezi assemblerem a kompilátorem

Video: Rozdíl mezi assemblerem a kompilátorem
Video: Which Tokyo Disney Theme Park Is Better? Disneyland VS Disneysea! 2024, Červenec
Anonim

Assembler vs Compiler

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 vysoké úrovně, jako je C++, a cílovým jazykem byl jazyk nízké úrovně, jako je jazyk symbolických instrukcí. Existují však kompilátory, které dokážou převést zdrojový program napsaný v jazyce Assembly a převést jej na strojový nebo objektový kód. Takovými nástroji jsou assemblery. Takže jak assemblery, tak kompilátory nakonec produkují kód, který lze přímo spustit na stroji.

Co je to kompilátor?

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. Nejčastěji je zdrojovým jazykem jazyk vysoké úrovně a cílovým jazykem jazyk nízké úrovně. Obecně lze tedy kompilátory považovat za překladatele, kteří překládají z jednoho jazyka do druhého. Kompilátory navíc provádějí určité optimalizace kódu. Typický kompilátor se skládá z několika hlavních komponent. První komponentou je skener (také známý jako lexikální analyzátor). Skener přečte program a převede jej na řetězec tokenů. Druhou součástí je analyzátor. Převádí řetězec tokenů do stromu analýzy (nebo abstraktního stromu syntaxe), který zachycuje syntaktickou strukturu programu. Další součástí jsou sémantické rutiny, které interpretují sémantiku syntaktické struktury. Následují optimalizace kódu a finální generování kódu.

Co je to Assembler?

Assembler je software nebo nástroj, který překládá jazyk assembleru do strojového kódu. Takže assembler je typ kompilátoru a zdrojový kód je napsán v jazyce assembler. Assembly je člověkem čitelný jazyk, ale obvykle má vztah jedna ku jedné s odpovídajícím strojovým kódem. Proto se o assembleru říká, že provádí isomorfní (mapování jedna ku jedné) překlad. Pokročilé assemblery poskytují další funkce, které podporují vývoj programů a procesy ladění. Například typ assemblerů nazývaných makro assemblery poskytuje možnost makra.

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á ho do jiného jazyka, zatímco assembler lze považovat za speciální typ kompilátoru, který překládá pouze jazyk assembler do strojového kódu. Kompilátory obvykle produkují strojový spustitelný kód přímo z jazyka vysoké úrovně, ale assemblery vytvářejí objektový kód, který může být nutné propojit pomocí linkerových programů, aby mohl běžet na stroji. Vzhledem k tomu, že jazyk assembler má mapování jedna ku jedné se strojovým kódem, lze assembler použít k vytváření kódu, který běží velmi efektivně v případech, kdy je výkon velmi důležitý (například pro grafické motory, vestavěné systémy s omezenými hardwarovými prostředky ve srovnání s osobním počítačem). jako mikrovlnné trouby, pračky atd.).

Doporučuje: