Assembler vs Interpreter
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 är källspråk ett språk på hög nivå som C++ och målspråk är ett språk på låg nivå 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. Å andra sidan är tolkar verktyg som exekverar instruktioner skrivna på något programmeringsspråk. Tolken kan antingen direkt exekvera källkod på hög nivå eller översätta dem till mellankod och sedan tolka den eller exekvera förkompilerad kod.
Vad är en montör?
Assembler är 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 en tolk?
En tolk är ett datorprogram eller ett verktyg som exekverar programmeringsinstruktioner. En tolk kan antingen exekvera källkoden direkt eller konvertera källkoden till en mellankod och exekvera den direkt eller exekvera förkompilerad kod producerad av en kompilator (vissa tolksystem inkluderar en kompilator för denna uppgift). Språk som Perl, Python, MATLAB och Ruby är exempel på programmeringsspråk som använder en mellankod. UCSD Pascal tolkar en förkompilerad kod. Språk som Java, BASIC och Samlltalk kompilerar först källan till en mellankod som kallas bytecode och tolkar den sedan.
Vad är skillnaden mellan en montör och en tolk?
En assembler kan betraktas som en speciell typ av kompilator, som endast översätter Assembly-språk till maskinkod. Tolkar är verktyg som utför instruktioner skrivna på något språk. Tolksystem kan innehålla en kompilator för att förkompilera kod före tolkning, men en tolk kan inte kallas en speciell typ av kompilator. 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, men de flesta tolkar kan slutföra exekveringen av ett program själva. En assembler kommer vanligtvis att göra en en till en översättning, men detta är inte sant för de flesta tolkar. 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.). Å andra sidan används tolkar när man behöver hög portabilitet. Till exempel kan samma Java-bytekod köras på olika plattformar genom att använda lämplig tolk (JVM).