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 |
|
|
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.