Kompilator vs tolk: Fullständig skillnad mellan kompilator och tolk

Innehållsförteckning:

Anonim

Vad är Compiler?

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

En kompilator bör följa syntaxregeln för det programmeringsspråk där den är skriven. Kompilatorn är dock bara ett program och kan inte åtgärda fel som hittats 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 täcker varje programnivå på hög nivå i maskinkoden. Detta inkluderar källkod, förkompilerad kod och skript. Både kompilatorn och tolkarna gör samma jobb som omvandlar programmeringsspråk på högre nivå till maskinkod. En kompilator konverterar dock koden till maskinkod (skapa en exe) innan programmet körs. Tolkar konverterar kod till maskinkod när programmet körs.

NYCKELSKILL

  • Kompilatorn omvandlar kod skriven på ett programmeringsspråk på hög nivå till maskinkoden på en gång innan programmet körs, medan en tolk täcker varje programnivå 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 fel för varje rad en efter en.
  • Kompilatorn är baserad på översättningslänkande-laddningsmodell, medan tolk baseras på tolkningsmetod.
  • Compiler tar ett helt program medan tolken tar en rad kod.

Skillnaden mellan kompilator och tolk

Grund för skillnad Kompilator Tolk
Programmeringssteg
  • Skapa programmet.
  • Compile analyserar eller analyserar alla språkuttalanden för att de är korrekta. Om fel, kastar ett fel
  • Om inget fel konverterar kompilatorn källkoden till maskinkoden.
  • Det länkar olika kodfiler till ett körbart program (kallas exe)
  • Kör programmet
  • Skapa programmet
  • Ingen länkning av filer eller generering av maskinkod
  • Källuttalanden utförs rad för rad UNDER utförande
Fördel Programkoden är redan översatt till maskinkod. Således är kodens exekveringstid mindre. 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 maskinkod alls.
Driftstid Kompilerad kod kör snabbare Tolkad kod går långsammare
Modell Den är baserad på språköversättningslänk-laddningsmodell. Den är baserad på tolkningsmetod.
Programgenerering Skapar utmatningsprogram (i form av exe) som kan köras oberoende av det ursprungliga programmet. Generera inte utmatningsprogram. Så de utvärderar källprogrammet varje gång under körningen.
Avrättning Programkörning är separat från sammanställningen. Det utförs först efter att hela utdataprogrammet har sammanställts. Programkörning är en del av tolkningsprocessen, så den utförs rad för rad.
Minnesbehov Målprogrammet körs oberoende och behöver inte kompilatorn i minnet. Tolken finns i minnet under tolkningen.
Bäst lämpad för Avgränsad till den specifika målmaskinen och kan inte överföras. 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 att den uttömmande analysen görs tar kompileringen 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 på förhand. Därför utför de många optimeringar som gör att koden går snabbare Tolkar ser kod rad för rad, och optimeringar är därför inte lika robusta som kompilatorer
Dynamisk typning Svårt att implementera eftersom kompilatorer inte kan förutsäga vad som händer vid tur-tid. Tolkade språk stöder dynamisk skrivning
Användande Den passar bäst för produktionsmiljön Det passar bäst för programmet och utvecklingsmiljön.
Felkörning Kompilatorn visar alla fel och varningar vid tidpunkten för kompileringen. Därför kan du inte köra programmet utan att fixa fel Tolken läser ett enda uttalande och visar eventuellt felet. Du måste rätta till felet för att tolka nästa rad.
Inmatning 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, sammanställning, alla samtidigt. Visar alla fel på varje rad en efter en.
Tillhörande programmeringsspråk C, C ++, C #, Scala, Java använder alla kompatibilitet. PHP, Perl, Ruby använder en tolk.

Kompilatorns roll

  • Compliers 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: n kan förstå.
  • Processen med sammanställning är relativt komplicerad. Det spenderar mycket tid på att analysera och bearbeta programmet.
  • Det körbara resultatet är någon form av maskinspecifik binär kod.

Tolkens roll

  • Tolken konverterar källkoden rad för rad under RUN Time.
  • Interpret översätter ett program skrivet på ett högnivåspråk fullständigt till maskinspråk.
  • Tolken tillåter utvärdering och modifiering av programmet medan det körs.
  • Relativt mindre tid för analys och bearbetning av programmet
  • Programkörningen är relativt långsam jämfört med kompilatorn

SPRÅK MED HÖG NIVÅ

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 genomfö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 består av serier av binärt mönster. (T.ex. 110110) Den representerar de enkla operationerna som ska utföras av datorn. Maskinspråkprogram är körbara så att de kan köras direkt.

OBJEKTKOD

Vid sammanställning av källkod är maskinkoden som genereras för olika processorer som Intel, AMD, en ARM annorlunda. tFör att göra koden portabel konverteras källkoden först till Objektkod. Det är en mellanhandskod (som liknar maskinkod) som ingen processor förstår. Vid körning omvandlas objektkoden till maskinkoden för den underliggande plattformen.

Java är både kompilerat och tolkat.

För att utnyttja relativa fördelar med kompilatorer är tolkar, vissa programmeringsspråk som Java både kompileras och tolkas. Själva Java-koden sammanställs i Object Code. Vid körning tolkar JVM objektkoden i maskindatorn för måldatorn.