Assembler vs Compiler
Over het algemeen is compiler een computerprogramma dat een programma leest dat in de ene taal is geschreven, de brontaal, en het verta alt in een andere taal, de doeltaal. Traditioneel was brontaal een taal op hoog niveau, zoals C++, en doeltaal was een taal op laag niveau, zoals assembler. Er zijn echter compilers die een in assembler geschreven bronprogramma kunnen converteren en converteren naar machinecode of objectcode. Assemblers zijn zulke tools. 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 in de ene taal is geschreven, de brontaal, en het verta alt in een andere taal, de doeltaal. Meestal is de brontaal een taal op hoog niveau en de doeltaal een taal op laag niveau. Over het algemeen kunnen compilers dus worden gezien als vertalers die van de ene taal naar de andere vertalen. Bovendien voeren compilers enkele optimalisaties van de code uit. Een typische compiler bestaat uit verschillende hoofdcomponenten. Het eerste onderdeel is de scanner (ook wel de lexicale analysator genoemd). Scanner leest het programma en converteert het naar een reeks tokens. Het tweede onderdeel is de parser. Het converteert de reeks tokens naar een ontleden-boom (of een abstracte syntaxis-boom), die de syntactische structuur van het programma vastlegt. Het volgende onderdeel zijn de semantische routines die de semantiek van de syntactische structuur interpreteren. De code-optimalisaties en de uiteindelijke codegeneratie volgen dit.
Wat is een monteur?
Assembler is een software of een tool die assembler verta alt naar machinecode. Een assembler is dus een soort compiler en de broncode is geschreven in assembler. Assembleren is een voor mensen leesbare taal, maar heeft meestal een één-op-één relatie met de bijbehorende machinecode. Daarom wordt van een assembler gezegd dat hij isomorfe (één-op-één mapping) vertaling uitvoert. Geavanceerde assemblers bieden extra functies die programmaontwikkeling en foutopsporingsprocessen ondersteunen. Het type assemblers dat macro-assemblers wordt genoemd, biedt bijvoorbeeld een macro-faciliteit.
Wat is het verschil tussen een Assembler en een Compiler?
Compiler is een computerprogramma dat een programma leest dat in de ene taal is geschreven en het in een andere taal verta alt, terwijl een assembler kan worden beschouwd als een speciaal type compiler dat alleen assembleertaal naar machinecode verta alt. Compilers produceren de uitvoerbare code van de machine meestal rechtstreeks vanuit een taal op hoog niveau, maar assemblers produceren een objectcode die mogelijk moet worden gekoppeld met behulp van linkerprogramma's om op een machine te kunnen draaien. Omdat assembleertaal een één-op-één mapping met machinecode heeft, kan een assembler worden gebruikt voor het produceren van code die zeer efficiënt werkt voor gelegenheden waarbij prestaties erg belangrijk zijn (voor bijvoorbeeld grafische engines, embedded systemen met beperkte hardwarebronnen in vergelijking met een personal computer zoals magnetrons, wasmachines, enz.).