Assembler vs Compiler
I allmänhet är kompilator 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. Traditionellt var källspråket ett högnivåspråk som C ++ och målspråket var ett lågnivåspråk som monteringsspråk. Det finns dock kompilatorer som kan konvertera ett källprogram skrivet på Assembly-språk och konvertera det till maskinkod eller objektkod. Monterare är sådana verktyg. Så, både monterare och kompilatorer producerar i slutändan kod som kan köras direkt på en maskin.
Vad är en kompilator?
Compiler ä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. Oftast är källspråket ett högnivåspråk och målspråket är ett lågnivåspråk. Så i allmänhet kan kompilatorer ses som översättare som översätter från ett språk till ett annat. Dessutom utför kompilatorer några optimeringar av koden. En typisk kompilator består av flera huvudkomponenter. Den första komponenten är skannern (även känd som lexikalisk analysator). Scanner läser programmet och konverterar det till en rad tokens. Den andra komponenten är tolkaren. Den omvandlar strängen av tokens till ett parse-träd (eller ett abstrakt syntaxträd), som fångar programmets syntaktiska struktur. Nästa komponent är de semantiska rutinerna som tolkar semantiken i den syntaktiska strukturen. Kodoptimeringar och slutlig kodgenerering följer detta.
Vad är en monterare?
Assembler är en programvara eller ett verktyg som översätter monteringsspråk till maskinkod. Så, en assembler är en typ av en kompilator och källkoden är skriven på Assembly-språk. Montering är ett mänskligt läsbart språk men det har vanligtvis en till en relation med motsvarande maskinkod. Därför sägs en samlare utföra isomorf översättning (en till en kartläggning) översättning. Avancerade montörer ger ytterligare funktioner som stöder programutveckling och felsökningsprocesser. Till exempel ger den typ av sammansättare som kallas makroaggregat en makrofacilitet.
Vad är skillnaden mellan en monterare och en kompilator?
Compiler är ett datorprogram som läser ett program skrivet på ett språk och översätter det till ett annat språk, medan en samlare kan betraktas som en speciell typ av kompilator som endast översätter monteringsspråk till maskinkod. Kompilatorer producerar vanligtvis maskinens körbara kod direkt från ett högnivåspråk, men sammansättare producerar en objektkod som kan behöva länkas med länkprogram för att kunna köras på en maskin. Eftersom monteringsspråket har en en till en kartläggning med maskinkod, kan en monterare användas för att producera kod som körs mycket effektivt för tillfällen där prestanda är mycket viktigt (för t.ex. grafikmotorer, inbäddade system med begränsade hårdvaruresurser jämfört med en persondator som mikrovågor, tvättmaskiner etc.).