Verschil tussen assembler en compiler

Anonim

Assembler vs Compiler

In het algemeen is compiler een computerprogramma dat een programma dat in één taal is geschreven, leest de brontaal heet en vertaalt het 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 met een laag niveau, zoals Assembly Language. Er zijn echter compilers die een bronprogramma kunnen converteren die in Assembly-taal is geschreven en omzetten naar machinecode of objectcode. Assemblers zijn dergelijke hulpmiddelen. Zo produceren beide assemblers en compilanten uiteindelijk code die direct op een machine kan worden uitgevoerd.

Wat is een Compiler?

Compiler is een computerprogramma dat een programma leest dat in één taal is geschreven, de brontaal genoemd en vertaald in een andere taal, die de doeltaal wordt genoemd. Meestal is de brontaal een taal op hoog niveau en de doeltaal is een taal met een laag niveau. Dus in het algemeen kunnen compilanten worden gezien als vertalers die vertalen van de ene taal naar de andere. Daarnaast voeren compilers enkele optimalisaties aan de code uit. Een typische compiler bestaat uit verschillende hoofdcomponenten. Het eerste onderdeel is de scanner (ook bekend als de lexicale analysator). Scanner leest het programma en zet het om in een reeks tokens. Het tweede onderdeel is de parser. Het converteert de touwtengang naar een parse-boom (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 optimalisatie en definitieve code generatie volgen dit.

Wat is een Assembler?

Assembler is een software of een hulpprogramma dat de taal van de montage naar de machinecode vertaalt. Dus een assembler is een soort compiler en de broncode staat in Assembly Language. Assemblage is een menselijk leesbare taal, maar het heeft gewoonlijk een een tot een relatie met de overeenkomstige machinecode. Daarom wordt er gezegd dat er een isomorfe (een tot een mapping) vertaling wordt uitgevoerd. Geavanceerde assemblers bieden aanvullende functies die programma-ontwikkeling en debuggingprocessen ondersteunen. Bijvoorbeeld, het type assembleraars genaamd macro assemblers biedt een macro faciliteit.

Wat is het verschil tussen een Assembler en een Compiler?

Compiler is een computerprogramma dat een programma schrijft die in één taal is geschreven en vertaald in een andere taal, terwijl een assembler kan worden beschouwd als een speciaal type compiler die alleen de taal van de montage naar de machinecode vertaalt. Compilers produceren meestal de uitvoerbare code van de machine rechtstreeks vanuit een taal op hoog niveau, maar assemblers produceren een objectcode die mogelijk via linkerprogramma's moet worden gekoppeld om op een machine te kunnen draaien.Omdat de assemblage taal een maal een mapping met een machinecode heeft, kan een assembler worden gebruikt voor het produceren van code die zeer efficiënt werkt voor situaties waarin prestaties erg belangrijk zijn (bijvoorbeeld grafische motoren, ingebedde systemen met beperkte hardwarebronnen in vergelijking met een persoonlijke computer zoals microgolven, wasmachines, enz.).