Vad är skillnaden mellan Linker Loader och Compiler

Huvudskillnaden mellan länklaster och kompilator är att linker kombinerar en eller flera objektfiler som genereras av kompilatorn till en enda körbar fil. Under tiden lägger en loader programmen i minnet och förbereder dem för körning medan kompilatorn omvandlar källkoden till objektkod.

Ett datorprogram är en samling instruktioner som utför en specifik uppgift när datorn kör det. En systemprogramvara är en typ av datorprogram som ger en plattform till annan programvara. Linker, loader och compiler är tre systemprogramvaror förknippade med datorprogrammering.

Viktiga områden som omfattas

1. Vad är en kompilator
     - Definition, Funktionalitet
2. Vad är en Linker
     - Definition, Funktionalitet
3. Vad är en Loader
     - Definition, Funktionalitet
4. Vad är skillnaden mellan Linker Loader och Compiler
     - Jämförelse av viktiga skillnader

Nyckelbegrepp

Kompilator, Linker, Loader

Vad är en kompilator

Ett program är en uppsättning instruktioner för att utföra en viss uppgift. Det är också känt som källkoden. Programmeraren kan förstå källkoden, men CPU kan inte förstå det. Därför är det nödvändigt att konvertera källkoden till maskinförståeligt format.

Figur 1: Kompilator

En kompilator är en speciell programvara som används i denna process. Det konverterar källkoden till objektkoden. Denna objektkod är en mellankod. CPU kan inte direkt utföra det.

Vad är en Linker

Efter omvandling av källkoden till objektkoden utför länken länkuppgiften. Det tar ett eller flera objektfiler som genereras av kompilatorn och kombinerar dem tillsammans för att skapa en körbar fil.

Figur 2: Linker

Dessutom kombinerar den objektkoderna med bibliotek. Till exempel, i ett C-program, om det finns sqrt () -funktionen att beräkna kvadratroten av ett tal, länkar länken programmet med mattebiblioteket. Slutligen kan CPU läsa och förstå den genererade körbara filen. Därför kan CPU exekvera den filen för att utföra den uppgift som definieras i programmet. 

Vad är en Loader

En loader lokaliserar program i minnet och förbereder dem för körning. Det är en viktig komponent när du startar ett program. Den innehåller uppgifter som att läsa innehållet i den körbara filen och placera filen i minnet. Dessutom utför den nödvändiga uppgifterna för att förbereda körbar fil för körning. När laddningen är klar startar operativsystemet programmet genom att överföra kontrollen till den laddade programkoden.

Figur 3: Sammanställning

De flesta operativsystem stöder lastare för att ladda program. De flesta system har laddaren i minnet medan andra som stöder virtuellt minne har laddaren i en sidofärdig minnesregion.

Skillnad mellan Linker Loader och Compiler

Definition

En länkare är ett datorprogram som tar en eller flera objektfiler som genereras av en kompilator och kombinerar dem i en enda körbar fil. En lastare är en del av ett operativsystem som ansvarar för att ladda program till minnet. En kompilator är en programvara som omvandlar datorkod som skrivs på ett programmeringsspråk (källkod) till ett annat programmeringsspråk (målkod). Således förklarar detta huvudskillnaden mellan länklaster och kompilator.

Funktionalitet

Dessutom kombinerar en länkare flera objektkod och länkar dem med bibliotek. Under tiden förbereder en loader den körbara filen för att köra medan en kompilator omvandlar källkoden till objektkoden. Därför är det skillnaden mellan linker loader och compiler vad gäller funktionalitet. 

Slutsats

Kortfattat är skillnaden mellan länklaster och kompilator att en länkare kombinerar en eller flera objektfiler som genereras av kompilatorn till en enda körbar fil och en loader placerar programmen i minnet och förbereder dem för exekvering medan en kompilator omvandlar källkoden till objektkod.

Referens:

1. "Linker (Computing)." Wikipedia, Wikimedia Foundation, 6 oktober 2018, Tillgänglig här.
2. "Loader (Computing)." Wikipedia, Wikimedia Foundation, 10 oktober 2018, Tillgänglig här.
3. "Compiler." Wikipedia, Wikimedia Foundation, 9 oktober 2018, Tillgänglig här.

Image Courtesy:

1. "Ideal compiler." (CC BY-SA 3.0) via Commons Wikimedia
2. "Linker" Av Qef - Egent arbete av uppladdare, baserat på arrangemanget av en bitmapekvivalent av Orderud (Public Domain) via Commons Wikimedia
3. "Screenshot-turbo51.com 2016-01-14 18-44-16" Av անհայտ - Aho, Sethi, Ullman, kompilatörer: Principer, tekniker och verktyg, Addison-Wesley, 1986. ISBN 0-201-10088- 6 (CC BY-SA 4.0) via Commons Wikimedia