Skillnaden mellan assembler och kompilator

Skillnaden mellan assembler och kompilator
Skillnaden mellan assembler och kompilator

Video: Skillnaden mellan assembler och kompilator

Video: Skillnaden mellan assembler och kompilator
Video: What If EuroDisneyland Was A Success? | The MasterPlan 2024, November
Anonim

Assembler vs Compiler

I allmänhet är kompilatorn 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åk ett språk på hög nivå som C++ och målspråk var ett lågnivåspråk såsom Assembly-språk. Det finns dock kompilatorer som kan konvertera ett källprogram skrivet på Assembly-språket och konvertera det till maskinkod eller objektkod. Assemblers är sådana verktyg. Så både assemblerare och kompilatorer producerar i slutändan kod som kan exekveras 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åk, och översätter det till ett annat språk, som kallas målspråk. 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 vissa optimeringar av koden. En typisk kompilator består av flera huvudkomponenter. Den första komponenten är skannern (även känd som lexikalanalysatorn). Scanner läser programmet och konverterar det till en rad tokens. Den andra komponenten är parsern. Den konverterar strängen av tokens till ett analysträ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. Kodoptimeringarna och slutlig kodgenerering följer detta.

Vad är en montör?

Assembler är en programvara eller ett verktyg som översätter Assembly-språk till maskinkod. Så, en assembler är en typ av en kompilator och källkoden är skriven på Assembly-språket. Assembly är ett mänskligt läsbart språk, men det har vanligtvis en en-till-en-relation med motsvarande maskinkod. Därför sägs en assembler utföra isomorf (en till en mappning) översättning. Avancerade assemblers tillhandahåller ytterligare funktioner som stöder programutveckling och felsökningsprocesser. Till exempel tillhandahåller den typ av sammanställare som kallas makrosammanställare en makrofunktion.

Vad är skillnaden mellan en assembler 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 assembler kan betraktas som en speciell typ av kompilator som endast översätter Assembly-språk till maskinkod. Kompilatorer producerar vanligtvis den körbara maskinens kod direkt från ett högnivåspråk, men assemblers producerar en objektkod som kan behöva länkas med hjälp av länkprogram för att kunna köras på en maskin. Eftersom Assembly-språket har en en-till-en-mappning med maskinkod, kan en assembler 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, inbyggda system med begränsade hårdvaruresurser jämfört med en persondator som mikrovågsugnar, tvättmaskiner etc.).

Rekommenderad: