Skillnaden mellan Assembler och Compiler

Anonim

Assembler vs Compiler

Generellt är kompilatorn ett datorprogram som läser ett program skrivet på ett språk, vilket är kallas källspråket och översätter det till ett annat språk, vilket kallas målspråket. Traditionellt var källspråk ett språk på hög nivå som C ++ och målspråket var ett lågnivå språk som Assembly Language. Det finns emellertid kompilatorer som kan konvertera ett källprogram skrivet i Assembly-språk och konvertera det till maskinkod eller objektkod. Assemblers är sådana verktyg. Så tillverkar både montörer och kompilatorer slutligen kod som kan utföras direkt på en maskin.

Vad är en kompilator?

Kompilatorn är ett datorprogram som läser ett program skrivet på ett språk, som kallas källspråket, och översätter det till ett annat språk, som kallas målspråket. Källspråket är oftast ett språk på hög nivå och målspråket är ett språk med låg nivå. Så i allmänhet kan kompilatorer ses som översättare som översätter från ett språk till ett annat. Dessutom gör kompilatörer några optimeringar till koden. En typisk kompilator består av flera huvudkomponenter. Den första komponenten är skannern (även känd som den lexiska analysatorn). Skannern läser programmet och konverterar det till en sträng tokens. Den andra komponenten är parsern. Den omvandlar strängen av tokens till ett parse-träd (eller ett abstrakt syntaktträd), som fångar programmets syntaktiska struktur. Nästa komponent är de semantiska rutiner som tolkar semantiken i den syntaktiska strukturen. Kodoptimering och slutkodsgenerering följer detta.

Vad är en Assembler?

Assembler är en programvara eller ett verktyg som översätter Assembly Language till maskinkoden. Så, en assembler är en typ av kompilator och källkoden är skrivet i samlingssprog. Montering är ett menligt läsbart språk, men det har vanligtvis ett ett till ett förhållande med motsvarande maskinkod. Därför sägs en monterare utföra isomorf (en till en kartläggning) översättning. Avancerade montörer ger ytterligare funktioner som stöder programutveckling och felsökningsprocesser. Till exempel tillhandahåller typen av montörer som kallas makromontörer en makroanläggning.

Vad är skillnaden mellan en assembler och en kompilator?

Kompilatorn är ett datorprogram som läser ett program skrivet på ett språk och översätter det till ett annat språk, medan en assembler kan betraktas som en speciell typ av kompilator som endast översätter sammansättningsspråk till maskinkod. Kompilatorer producerar vanligtvis maskinens exekverbara kod direkt från ett språk på hög nivå, men montörer producerar en objektkod som kan kopplas med hjälp av länkprogram för att kunna köras på en maskin.Eftersom monteringsspråket har en till en kartläggning med maskinkod kan en assembler användas för att producera kod som körs mycket effektivt vid tillfällen där prestanda är mycket viktigt (till exempel grafikmotorer, inbyggda system med begränsade hårdvaruresurser jämfört med en persondator som mikrovågor, tvättmaskiner, etc.).