Kompilator vs tolk - Skillnaden mellan dem

Nyckelskillnad mellan kompilator och tolk

  • Kompilatorn omvandlar kod skriven i ett högnivåprogrammeringsspråk till maskinkoden på en gång innan programmet körs, medan en tolk omvandlar varje programsats på hög nivå, en efter en, till maskinkoden, under programkörningen.
  • Kompilerad kod går snabbare, medan tolkad kod går långsammare.
  • Kompilatorn visar alla fel efter kompileringen, å andra sidan visar tolken felen för varje rad en efter en.
  • Kompilatorn är baserad på en översättningslänknings-laddningsmodell, medan tolken är baserad på tolkningsmetoden.
  • Kompilatorn tar ett helt program, medan tolken tar en enda rad kod.
Skillnaden mellan kompilator och tolk
Kompilator kontra tolk

Vad är kompilator?

En kompilator är ett datorprogram som omvandlar kod skriven i ett högnivåprogrammeringsspråk till maskinkoden. Det är ett program som översätter den mänskliga läsbara koden till ett språk som en datorprocessor förstår (binär 1 och 0 bitar). Datorn bearbetar maskinkoden för att utföra motsvarande uppgifter.

A kompilator bör följa syntaxregeln för det programmeringsspråk som den är skriven på. Dock är kompilatorn bara ett program och kan inte fixa fel som finns i det programmet. Så om du gör ett misstag måste du göra ändringar i syntaxen för ditt program. Annars kommer det inte att kompileras.

Vad är tolk?

En tolk är ett datorprogram som omvandlar varje programsats på hög nivå till maskinkoden. Detta inkluderar källkod, förkompilerad kod och skript. Både kompilatorn och tolkarna gör samma jobb som konverterar programmeringsspråk på högre nivå till maskinkod. En kompilator kommer dock att konvertera koden till maskinkod (skapa ett exe) innan programmet körs. Tolkar konverterar kod till maskinkod när programmet körs.

Skillnaden mellan kompilator och tolk

Här är viktiga skillnader mellan kompilator och tolk:

Grund för skillnad Kompilator Tolk
Programmeringssteg
  • Skapa programmet.
  • Compile kommer att analysera eller analysera alla språkpåståenden för att se om de är korrekta. Om felaktigt, ger ett fel
  • Om inget fel konverterar kompilatorn källkod till maskinkod.
  • Den länkar olika kodfiler till ett körbart program (känd som exe)
  • Kör programmet
  • Skapa programmet
  • Ingen länkning av filer eller generering av maskinkod
  • Källsatser utförda rad för rad UNDER exekvering
Fördel Programkoden är redan översatt till maskinkod. Sålunda är exekveringstiden för den kod kortare. Tolkar är lättare att använda, särskilt för nybörjare.
Nackdel Du kan inte ändra programmet utan att gå tillbaka till källkoden. Tolkade program kan köras på datorer som har motsvarande tolk.
Maskinkod Lagra maskinspråk som maskinkod på disken Sparar inte maskinkoden alls.
gångtid Den kompilerade koden går snabbare Tolkad kod går långsammare
Modell Den är baserad på språköversättningsmodell för länkning och laddning. Den är baserad på tolkningsmetod.
Programgenerering Genererar utdataprogram (i form av exe) som kan köras oberoende av originalprogrammet. Generera inte utdataprogram. Så de utvärderar källprogrammet vid varje tillfälle under körningen.
Utförande Programexekveringen är separat från kompileringen. Det utfördes först efter att hela utdataprogrammet har kompilerats. Programexekvering är en del av tolkningsprocessen, så det utförs rad för rad.
Minneskrav Target program körs oberoende och kräver inte kompilatorn i minnet. Tolken finns i minnet under tolkning.
Bäst lämpad för Avgränsad till den specifika målmaskinen och kan inte portas. C och C++ är ett mest populärt programmeringsspråk som använder kompileringsmodell. För webbmiljöer där laddningstider är viktiga. På grund av all uttömmande analys som görs tar kompilering relativt längre tid att kompilera även liten kod som kanske inte körs flera gånger. I sådana fall är tolkar bättre.
Kodoptimering Kompilatorn ser hela koden i förväg. Därför utför de massor av optimeringar som gör att koden körs snabbare Tolkar ser kod rad för rad, och därför är optimeringar inte lika robusta som kompilatorer
Dynamisk typning Svårt att implementera eftersom kompilatorer inte kan förutsäga vad som händer vid tur. Tolkade språk stöder Dynamic Typing
Användning Den är bäst lämpad för produktionsmiljön Det passar bäst för program- och utvecklingsmiljön.
Fel vid exekvering Kompilatorn visar alla fel och varningar vid kompileringstillfället. Därför kan du inte köra programmet utan att åtgärda fel Tolken läser ett enstaka påstående och visar eventuellt fel. Du måste rätta till felet för att tolka nästa rad.
Ingång Det tar ett helt program Det tar en enda rad kod.
Produktion Compliers genererar mellanliggande maskinkod. Tolk genererar aldrig någon mellanliggande maskinkod.
fel Visa alla fel efter, kompilering, alla samtidigt. Visar alla fel på varje rad en efter en.
Angående programmeringsspråk C, C++, C#, Scala, Java alla använder complier. PHP, Perl, Rubin använder tolk.

Roll som kompilator

  • Komplianter läser källkoden, matar ut körbar kod
  • Översätter programvara skriven på ett högre språk till instruktioner som datorn kan förstå. Den konverterar texten som en programmerare skriver till ett format som CPU kan förstå.
  • Sammanställningsprocessen är relativt komplicerad. Det ägnar mycket tid åt att analysera och bearbeta programmet.
  • Det körbara resultatet är någon form av maskinspecifik binär kod.

Kontrollera också: - Handledning för kompilatordesign för nybörjare

Rollen som tolk

  • Tolken konverterar källkoden rad för rad under RUN Time.
  • Interpret översätter helt ett program skrivet på ett högnivåspråk till ett språk på maskinnivå.
  • Tolken tillåter utvärdering och modifiering av programmet medan det körs.
  • Relativt mindre tid åt att analysera och bearbeta programmet
  • Programexekveringen är relativt långsam jämfört med kompilatorn

HÖG NIVÅ SPRÅK

Språk på hög nivå, som C, C++, JAVA, etc., är mycket nära engelska. Det gör programmeringsprocessen enkel. Det måste dock översättas till maskinspråk innan det körs. Denna översättningsprocess utförs antingen av en kompilator eller en tolk. Även känd som källkod.

MASKINKOD

Maskinspråk ligger mycket nära hårdvaran. Varje dator har sitt maskinspråk. Ett maskinspråksprogram är uppbyggda av serier av binära mönster. (T.ex. 110110) Det representerar de enkla operationer som bör utföras av datorn. Maskinspråksprogram är körbara så att de kan köras direkt.

OBJEKTKOD

Vid kompilering av källkod är maskinkoden som genereras för olika processorer som Intel, AMD och ARM olika. För att göra koden portabel konverteras källkoden först till objektkod. Det är en mellankod (liknande maskinkod) som ingen processor kommer att förstå. Vid körning konverteras objektkoden till maskinkoden för den underliggande plattformen.

Java är både kompilerad och tolkad.

För att utnyttja de relativa fördelarna med kompilatorer är tolkar något programmeringsspråk som Java är både sammanställda och tolkade. De Java koden i sig kompileras till Object Code. Vid körningstid JVM tolkar objektkoden till maskinkoden för måldatorn.

Kontrollera också: - Java Handledning för nybörjare: Lär dig kärnan Java Programmering