Verschil tussen Assembler en Compiler

Assembler vs Compiler

Compiler is over het algemeen een computerprogramma dat een programma leest dat is geschreven in één taal, de brontaal, en vertaalt dit in een andere taal, die de doeltaal wordt genoemd. Traditioneel was de brontaal een taal op hoog niveau, zoals C ++, en de doeltaal was een taal op een laag niveau, zoals de assembleertaal. Er zijn echter compilers die een bronprogramma kunnen converteren dat is geschreven in de assembleertaal en dit kan converteren naar machine- of objectcode. Assemblers zijn dergelijke hulpmiddelen. Dus, zowel assemblers als compilers produceren uiteindelijk code die direct op een machine kan worden uitgevoerd.

Wat is een compiler?

Compiler is een computerprogramma dat een programma leest dat is geschreven in één taal, de brontaal, en vertaalt het in een andere taal, die de doeltaal wordt genoemd. Meestal is de brontaal een taal op hoog niveau en is de doeltaal een taal op laag niveau. Compilers kunnen dus over het algemeen worden gezien als vertalers die van de ene taal naar de andere vertalen. Bovendien voeren compilers enkele optimalisaties uit voor de code. Een typische compiler bestaat uit verschillende hoofdcomponenten. Het eerste onderdeel is de scanner (ook bekend als de lexicale analysator). Scanner leest het programma en converteert het naar een reeks tokens. De tweede component is de parser. Het converteert de reeks tokens naar een ontleedboom (of een abstracte syntaxboom), die de syntactische structuur van het programma vastlegt. Volgende component is de semantische routines die de semantiek van de syntactische structuur interpreteren. De code-optimalisaties en de uiteindelijke codegeneratie volgen dit.

Wat is een assembler?

Assembler is een software of een tool die assembly-taal naar machinecode vertaalt. Een assembler is dus een type compiler en de broncode is geschreven in de assembler. Assemblage is een voor mensen leesbare taal, maar het heeft meestal een één-op-één relatie met de bijbehorende machinecode. Daarom wordt van een assembler gezegd dat hij een isomorfe (één-op-één mapping) vertaling uitvoert. Geavanceerde assemblers bieden extra functies die programmaontwikkeling en foutopsporingsprocessen ondersteunen. Het type monteurs dat macro-assembleurs wordt genoemd, biedt bijvoorbeeld een macrofaciliteit.

Wat is het verschil tussen een Assembler en een Compiler?

Compiler is een computerprogramma dat een in een taal geschreven programma leest en vertaalt naar een andere taal, terwijl een assembler kan worden beschouwd als een speciaal type compiler dat alleen assembleertaal naar machinecode vertaalt. Compilers produceren de uitvoerbare code van de machine meestal rechtstreeks vanuit een taal op hoog niveau, maar assemblers produceren een objectcode die moet worden gekoppeld met behulp van koppelprogramma's om op een computer te worden uitgevoerd. Omdat Assembleertaal een één-op-één toewijzing heeft met machinecode, kan een assembler worden gebruikt voor het produceren van code die zeer efficiënt werkt voor gelegenheden waarin de prestaties erg belangrijk zijn (voor bijvoorbeeld grafische engines, ingebedde systemen met beperkte hardwarebronnen in vergelijking met een pc zoals magnetrons, wasmachines, etc.).