Hvad er Compiler?
en compiler er et computerprogram, der omdanner kode skrevet på et programmeringssprog på højt niveau til maskinkoden. Det er et program, der oversætter den menneskelige læsbare kode til et sprog, som en computerprocessor forstår (binær 1 og 0 bit). Computeren behandler maskinkoden for at udføre de tilsvarende opgaver.
en kompilator skal overholde syntaksreglen for det programmeringssprog, som det er skrevet på. Kompilatoren er dog kun et program og kan ikke rette fejl, der findes i det pågældende program. Så hvis du laver en fejl, skal du foretage ændringer i syntaksen for dit program. Ellers vil det ikke kompilere.
Hvad er tolk?
en tolk er et computerprogram, der dækker hvert program på højt niveau i maskinkoden. Dette inkluderer kildekode, forudkompileret kode og scripts. Både compiler og tolke gør det samme job, som konverterer programmeringssprog på højere niveau til maskinkode. En kompilator konverterer dog koden til maskinkode (Opret en eks) før programkørsel. Tolke konverterer kode til maskinkode, når programmet køres.
nøgleforskel
- Compiler omdanner kode skrevet i et programmeringssprog på højt niveau til maskinkoden på en gang, før programmet kører, mens en tolk dækker hvert højt niveau programerklæring, en efter en, ind i maskinkoden, under programkørsel.
- kompileret kode kører hurtigere, mens fortolket kode kører langsommere.
- Compiler viser alle fejl efter kompilering, på den anden side viser tolken fejl på hver linje en efter en.
- Compiler er baseret på oversættelse linking-loading model, hvorimod tolk er baseret på fortolkning metode.
- Compiler tager et helt program, mens tolken tager en enkelt linje kode.
forskel mellem Compiler og tolk
basis for forskel | Compiler | tolk |
---|---|---|
programmering trin |
|
|
fordel | programkoden er allerede oversat til maskinkode. Således er det kode udførelsestid er mindre. | tolke er lettere at bruge, især for begyndere. |
ulempe | du kan ikke ændre programmet uden at gå tilbage til kildekoden. | fortolkede programmer kan køre på computere, der har den tilsvarende tolk. |
maskinkode | Gem maskinsprog som maskinkode på disken | slet ikke gemme maskinkode. |
køretid | kompileret kode Kør hurtigere | fortolket kode Kør langsommere |
Model | det er baseret på sprogoversættelselinking-loading model. | det er baseret på fortolkningsmetode. |
programgenerering | genererer outputprogram (i form af eks), som kan køres uafhængigt af det oprindelige program. | generer ikke outputprogram. Så de evaluerer kildeprogrammet hver gang under udførelsen. |
udførelse | programudførelse er adskilt fra kompileringen. Det udføres først, efter at hele outputprogrammet er udarbejdet. | programudførelse er en del affortolkningsproces, så den udføres linje for linje. |
hukommelseskrav | målprogram udførseluafhængigt og kræver ikke kompilatoren i hukommelsen. | tolken findes i hukommelsen under fortolkningen. |
bedst egnet til | afgrænset til den specifikke målmaskine og kan ikke overføres. C og C++ er et mest populært programmeringssprog, der bruger kompileringsmodel. | til internetmiljøer, hvor belastningstider er vigtige. På grund af al den udtømmende analyse er udført, kompilerer tager relativt større tid at kompilere selv lille kode, der muligvis ikke køres flere gange. I sådanne tilfælde er tolke bedre. |
Kodeoptimering | kompilatoren ser hele koden på forhånd. Derfor udfører de masser af optimeringer, der får koden til at køre hurtigere | tolke se kodelinje for linje, og optimeringer er således ikke så robuste som kompilatorer |
dynamisk indtastning | vanskeligt at implementere, da kompilatorer ikke kan forudsige, hvad der sker ved drejetid. | fortolkede sprog understøtter dynamisk Typing |
anvendelse | det er bedst egnet til produktionsmiljøet | det er bedst egnet til programmet og udviklingenmiljø. |
Fejludførelse | Compiler viser alle fejl og advarsler på kompileringstidspunktet. Derfor kan du ikke køre programmet uden at rette fejl | tolken læser en enkelt erklæring og viser fejlen, hvis nogen. Du skal rette fejlen for at fortolke næste linje. |
Input | det tager et helt program | det tager en enkelt linje kode. |
Output | Compliers genererer mellemliggende machnie kode. | tolk aldrig generere nogen mellemliggende machnie kode. |
fejl | Vis alle fejl efter, kompilering, alle på samme tid. | viser alle fejl i hver linje en efter en. |
vedrørende programmeringssprog | C,C++,C#, Scala, Java alle bruger complier. PHP, Perl, Ruby bruger en tolk. |
rolle Compiler
- Compliers læser kildekoden, udsender eksekverbar kode
- Oversætter programmer skrevet på et sprog på højere niveau til instruktioner, som computeren kan forstå. Det konverterer teksten, som en programmør skriver til et format, som CPU ‘ en kan forstå.
- processen med kompilering er relativt kompliceret. Det bruger meget tid på at analysere og behandle programmet.
- det eksekverbare resultat er en form for maskinspecifik binær kode.
tolkens rolle
- tolken konverterer kildekoden linje for linje i løbet af køretiden. tolk oversætter fuldstændigt ET program skrevet på et højt niveau sprog til maskinniveau sprog.
- tolk tillader evaluering og ændring af programmet, mens det udføres.
- relativt mindre tid brugt til at analysere og behandle programmet
- programudførelse er relativt langsom sammenlignet med compiler
sprog på højt niveau
sprog på højt niveau, som C, C++, JAVA osv., er meget tæt på engelsk. Det gør programmeringsprocessen let. Det skal dog oversættes til maskinsprog inden udførelse. Denne oversættelsesproces udføres enten af enten en kompilator eller en tolk. Også kendt som kildekode.
maskinkode
maskinsprog er meget tæt på udstyret. Hver computer har sit maskinsprog. En maskine sprog programmer består af serier af binært mønster. (Fx. 110110) det repræsenterer de enkle handlinger, der skal udføres af computeren. Maskinsprogsprogrammer kan eksekveres, så de kan køres direkte.
objektkode
ved kompilering af kildekode er maskinkoden genereret til forskellige processorer som Intel, AMD, en ARM anderledes. tfor at gøre kode bærbar konverteres kildekoden først til objektkode. Det er en mellemledskode (svarende til maskinkode), som ingen processor vil forstå. Ved kørselstid konverteres objektkoden til maskinkoden på den underliggende platform.
Java er både kompileret og fortolket.
for at udnytte relative fordele ved kompilatorer er tolke nogle programmeringssprog som Java er både kompileret og fortolket. Selve Java-koden er samlet i objektkode. På kørselstidspunktet fortolker JVM objektkoden til maskinkode på målcomputeren.