Vad är kompilator?
en kompilator är ett datorprogram som omvandlar kod skriven på ett programmeringsspråk på hög nivå 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ära 1 och 0 bitar). Datorn bearbetar maskinkoden för att utföra motsvarande uppgifter.
en kompilator ska följa syntaxregeln för det programmeringsspråk där det är skrivet. Kompilatorn är dock 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 kompilera.
Vad är Tolk?
en tolk är ett datorprogram som täcker varje program på hög nivå i maskinkoden. Detta inkluderar källkod, förkompilerad kod och skript. Både kompilator och tolkar gör samma jobb som konverterar 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.
nyckelskillnad
- kompilator 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 program på hög nivå uttalande, en efter en, i maskinkoden, under programkörning.
- kompilerad kod körs snabbare medan tolkad kod körs långsammare.
- kompilatorn visar alla fel efter kompilering, å andra sidan visar tolken fel på varje rad en efter en.
- kompilatorn är baserad på översättningslänkningsladdningsmodell, medan tolken är baserad på tolkningsmetod.
- kompilatorn tar ett helt program medan tolken tar en enda kodrad.
skillnad mellan kompilator och tolk
grund för skillnad | kompilator | tolk |
---|---|---|
programmeringssteg |
|
|
fördel | programkoden är redan översatt till maskinkod. Således är det kod exekveringstid mindre. | tolkar är enklare 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. |
körtid | kompilerad kod kör snabbare | tolkad kod kör långsammare |
Modell | den är baserad på språköversättninglinking-loading model. | det är baserat på tolkningsmetod. |
programgenerering | genererar utdataprogram (i form av exe) som kan köras oberoende av det ursprungliga programmet. | generera inte utdataprogram. Så de utvärderar källprogrammet vid varje tidpunkt under körning. |
exekvering | programkörning är separat från kompileringen. Det utfördes först efter att hela utmatningsprogrammet har sammanställts. | Programkörning är en del avtolkningsprocessen, så den utförs rad för rad. |
minneskrav | målprogram körsjälvständigt och krä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 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 görs, kompilerar tar relativt längre tid att kompilera även liten kod som inte kan köras 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 många optimeringar som gör att koden körs snabbare | tolkar ser kod rad för rad, och optimeringar är därför inte lika robusta som kompilatorer |
dynamisk typning | svår att implementera eftersom kompilatorer inte kan förutsäga vad som händer vid turtid. | tolkade språk stöder dynamisk typning |
användning | det passar bäst för produktionsmiljön | det passar bäst för programmet och utvecklingenmiljö. |
felkörning | kompilator visar alla fel och varningar vid kompileringstiden. Därför kan du inte köra programmet utan att fixa fel | tolken läser ett enda uttalande och visar felet om det finns något. Du måste korrigera felet för att tolka nästa rad. |
Input | det tar ett helt program | det tar en enda rad kod. |
utgång | Compliers genererar mellanliggande machnie-kod. | tolk genererar aldrig någon mellanliggande machnie-kod. |
fel | Visa alla fel efter, kompilering, alla samtidigt. | visar alla fel på varje rad en efter en. |
relaterade programmeringsspråk | C,C++,C#, Scala, Java alla använder complier. | 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 språk på högre nivå till instruktioner som datorn kan förstå. Den konverterar texten som en programmerare skriver till ett format som CPU kan förstå.
- kompileringsprocessen ä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 körtid.
- tolk översätter helt ETT program skrivet på ett högnivåspråk till maskinnivåspråk.
- tolk tillåter utvärdering och modifiering av programmet medan det körs.
- relativt mindre tid för att analysera och bearbeta programmet
- programkörning är relativt långsam jämfört med kompilator
högnivåspråk
högnivåspråk, som C, C++, JAVA, etc., är mycket nära engelska. Det gör programmeringsprocessen lätt. Det måste dock översättas till maskinspråk före körning. Denna översättningsprocess utförs antingen av antingen 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 operationer som ska utföras av datorn. Maskinspråksprogram kan köras så att de kan köras direkt.
objektkod
vid sammanställning av källkod är maskinkoden genererad för olika processorer som Intel, AMD, en ARM annorlunda. tför att göra koden bärbar 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 sammanställs och tolkas.
för att utnyttja relativa fördelar med kompilatorer är tolkar vissa programmeringsspråk som Java sammanställs och tolkas. Själva Java-koden sammanställs till objektkod. Vid körning tolkar JVM objektkoden till maskinkod på måldatorn.