ce este compilator?
un compilator este un program de calculator care transformă codul scris într-un limbaj de programare la nivel înalt în codul mașinii. Este un program care traduce codul care poate fi citit de om într-o limbă pe care un procesor de computer o înțelege (binar 1 și 0 biți). Computerul procesează codul mașinii pentru a efectua sarcinile corespunzătoare.
un compilator trebuie să respecte regula de sintaxă a limbajului de programare în care este scris. Cu toate acestea, compilatorul este doar un program și nu poate remedia erorile găsite în acel program. Deci, dacă faceți o greșeală, trebuie să faceți modificări în sintaxa programului dvs. În caz contrar, nu se va compila.
ce este interpretul?
un interpretor este un program de calculator, care acoperă fiecare declarație de program de nivel înalt în codul mașinii. Aceasta include codul sursă, codul precompilat și scripturile. Atât compilatorul, cât și interpreții fac aceeași treabă, care transformă limbajul de programare de nivel superior în cod mașină. Cu toate acestea, un compilator va converti codul în cod mașină (creați un exe) înainte de a rula programul. Interpreții convertesc codul în cod mașină atunci când programul este rulat.
diferență cheie
- compilator transformă cod scris într-un limbaj de programare la nivel înalt în codul mașinii, la o dată, înainte de programul rulează, întrucât un interpret acoperă fiecare program de nivel înalt declarație, unul câte unul, în codul mașinii, în timpul rulării programului.
- codul compilat rulează mai repede, în timp ce codul interpretat rulează mai lent.
- compilatorul afișează toate erorile după compilare, pe de altă parte, interpretul afișează Erorile fiecărei linii una câte una.
- compilator se bazează pe traducere linking-încărcare model, întrucât interpret se bazează pe metoda de interpretare.
- compilator ia un întreg program în timp ce interpretul are o singură linie de cod.
diferența dintre compilator și interpret
baza diferenței | compilator | interpret |
---|---|---|
pași de programare |
|
|
Advantage | codul programului este deja tradus în codul mașinii. Astfel, timpul de execuție a codului este mai mic. | interpreții sunt mai ușor de utilizat, în special pentru începători. |
dezavantaj | nu puteți schimba programul fără a reveni la codul sursă. | programele interpretate pot rula pe computere care au interpretul corespunzător. |
cod mașină | stocați limba mașinii ca cod mașină pe disc | nu salvați deloc codul mașinii. |
timpul de rulare | codul compilat rulează mai repede | Codul interpretat rulează mai lent |
Modelul | se bazează pe modelul de traducere a limbii. | se bazează pe metoda de interpretare. |
generarea de programe | generează un program de ieșire (sub formă de exe) care poate fi rulat independent de programul original. | nu generați programul de ieșire. Deci, ei evaluează programul sursă de fiecare dată în timpul execuției. |
execuție | execuție Program este separat de compilare. Se efectuează numai după ce întregul program de ieșire este compilat. | execuția programului face parte dinprocesul de interpretare, deci este efectuat linie cu linie. |
cerința de memorie | programul țintă executeindependent și nu necesită compilatorul în memorie. | interpretul există în memorie în timpul interpretării. |
cel mai potrivit pentru | delimitat de mașina țintă specifică și nu poate fi portat. C și C++ sunt cele mai populare un limbaj de programare care utilizează modelul de compilare. | pentru mediile web, unde timpii de încărcare sunt importanți. Datorită tuturor analizei exhaustive se face, compilează ia timp relativ mai mare pentru a compila chiar cod mic, care nu poate fi rulat de mai multe ori. În astfel de cazuri, interpreții sunt mai buni. |
optimizarea codului | compilatorul vede întregul cod în avans. Prin urmare, ei efectuează o mulțime de optimizări care fac codul rula mai repede | interpreții vedea linie de cod de linie, și, astfel, optimizările nu sunt la fel de robust ca compilatoare |
tastarea dinamică | dificil de implementat ca compilatoare nu pot prezice ce se întâmplă la rândul său timp. | limbile interpretate acceptă tastarea dinamică |
utilizare | este cel mai potrivit pentru mediul de producție | este cel mai potrivit pentru program și developmentenvironment. |
executarea erorilor | compilatorul afișează toate erorile și avertismentele la momentul compilării. Prin urmare, nu puteți rula programul fără Remedierea erorilor | interpretul citește o singură declarație și arată eroarea dacă există. Trebuie să corectați eroarea de a interpreta linia următoare. |
intrare | este nevoie de un întreg program | este nevoie de o singură linie de cod. |
ieșire | Compliers generează cod machnie intermediar. | interpret nu genera nici un cod intermediar machnie. |
erori | Afișează toate erorile după, compilare, toate în același timp. | Afișează toate erorile fiecărei linii una câte una. |
limbaje de programare referitoare | C,C++,C#, Scala, Java toate Utilizare complier. | PHP, Perl, Ruby folosește un interpret. |
rolul compilatorului
- Compliers citește codul sursă, afișează codul executabil
- traduce software-ul scris într-un limbaj de nivel superior în instrucțiuni pe care computerul le poate înțelege. Convertește textul pe care un programator îl scrie într-un format pe care procesorul îl poate înțelege.
- procesul de compilare este relativ complicat. Petrece mult timp analizând și procesând programul.
- rezultatul executabil este o formă de cod binar specific mașinii.
rolul interpretului
- interpretul convertește codul sursă linie cu linie în timpul rulării.
- interpreta traduce complet un program scris într-un limbaj de nivel înalt în limbaj la nivel de mașină.
- interpret permite evaluarea și modificarea programului în timp ce se execută.
- relativ mai puțin timp petrecut pentru analiza și procesarea programului
- execuția programului este relativ lentă în comparație cu compilatorul
limbaje de nivel înalt
limbaje de nivel înalt, cum ar fi C, C++, JAVA etc., sunt foarte aproape de engleză. Se face procesul de programare ușor. Cu toate acestea, trebuie tradus în limbajul mașinii înainte de execuție. Acest proces de traducere este realizat fie de un compilator, fie de un interpret. De asemenea, cunoscut sub numele de cod sursă.
codul mașinii
limbile mașinii sunt foarte apropiate de hardware. Fiecare computer are limbajul său de mașină. Un program de limbaj mașină sunt alcătuite din serii de model binar. (Ex. 110110) reprezintă operațiile simple care ar trebui efectuate de computer. Programele de limbaj mașină sunt executabile astfel încât să poată fi rulate direct.
cod obiect
la compilarea codului sursă, codul mașinii generat pentru diferite procesoare precum Intel, AMD, un ARM este diferit. tpentru a face codul portabil, codul sursă este convertit mai întâi în cod obiect. Este un cod intermediar (similar cu codul mașinii) pe care Niciun procesor nu îl va înțelege. În timpul rulării, codul obiect este convertit în codul mașinii platformei de bază.
Java este compilat și interpretat.
pentru a exploata avantajele relative ale compilatoare sunt interpreți unele limbaj de programare ca Java sunt atât compilate și interpretate. Codul Java în sine este compilat în cod obiect. În timpul rulării, JVM interpretează codul obiect în codul mașinii computerului țintă.