Etapa finală a creării unui program este traducerea unui algoritm scris într-unul dintre limbajele de programare (C/C++, Pascal etc.) într-un limbaj de mașină de nivel scăzut. Acest lucru se datorează faptului că, pentru a îndeplini orice sarcină, computerelor trebuie să li se dea comenzi într-un limbaj pe care îl înțeleg, apropiat de binar și care operează cu structuri de date primitive (bit, octet sau cuvânt). Procesul de traducere a declarațiilor specifice domeniului ale limbilor de nivel în alt în cod binar se numește traducere. Există două metode de traducere - compilare și interpretare.
Compiler - ce este?
Analiza multor interpretări ale termenilor „compilator” și „compilare” ne permite să evidențiem următoarea definiție. Un compilator este un program conceput pentru a traduce textul unui algoritm sursă dintr-un limbaj de nivel în alt într-un set echivalent de instrucțiuni într-un limbaj orientat către mașină. Acesta este așa-numitul cod obiect, pentru asamblarea ulterioară a codului obiect rezultat într-un modul de program gata de utilizare.
Compiler și interpret - asemănări și diferențe
Un interpret este un utilitar careprecum și un compilator, conceput pentru a traduce codul sursă în cod mașină. Totuși, spre deosebire de compilator, interpretul rulează de fiecare dată cu programul și execută traducerea linie cu linie.
Puteți spune că compilatorul și interpretul sunt procesoare de limbaj care permit computerului să recunoască și să execute comenzile date de programator.
Clasificarea compilatorului
Compilatorii sunt clasificați în principal după caracteristici legate de domeniile lor de aplicare practică.
Compilatorul de vectorizare este un utilitar care traduce codul sursă în cod obiect și este adaptat pentru computere echipate cu procesoare vectoriale.
Un compilator flexibil este programat într-un limbaj de nivel în alt într-un mod modular. Gestionarea acestuia se realizează folosind tabele. De asemenea, este posibil să-l executați folosind compilatorul de compilatoare.
Compilatorul incremental este un procesor de limbaj care retraduce fragmente separate de cod sursă și completări la acesta. Cu toate acestea, evită recompilarea întregii aplicații.
Un compilator interpretativ (în trepte) este un utilitar care realizează secvenţial o compilare independentă a fiecărei instrucţiuni sau comenzi a unui cod sursă de nivel în alt.
Un compilator de compilatoare este un traducător capabil să accepte o descriere formală pentru un limbaj de programare și să genereze independent un compilator pentru orice limbă.
Compilatorul de depanare vă permite să găsiți și să remediați unele tipuri de erori de sintaxă făcute la scrierea codului sursă
Un compilator rezident ocupă un loc permanent în RAM și, prin urmare, este reutilizabil pentru o gamă largă de sarcini.
Compilatorul autocompilat este scris în aceeași limbă ca și traducerea.
Compilatorul universal se bazează pe o descriere formală a parametrilor semantici și sintactici ai limbajului de intrare. Componentele principale ale unui astfel de utilitar sunt încărcările de bază, sintactice și semantice.
Dispozitiv compilator
Un compilator și un linker sunt în centrul oricărui compilator. Adesea, la compilare, se folosește un linker extern, iar compilatorul însuși realizează doar funcția de traducere. De asemenea, se întâmplă ca compilatorul să fie implementat ca un fel de program manager care este asociat cu traducătorul (sau traducătorii, dacă s-au folosit diferite limbaje de programare la scrierea codului sursă) și linkerul și începe execuția acestora atunci când este necesar.
Limbaje de programare și metode de traducere
În ciuda faptului că un program scris în orice limbaj de programare poate fi atât compilat, cât și interpretat, multe limbaje de nivel în alt au o predispoziție la una sau alta metodă de traducere. Deci, limbajul C a fost conceput inițial pentru compilare, iar Java - pentru interpretarea programului scris. Sunt în curs de dezvoltareCompilatoarele C sunt destul de ușoare, datorită nivelului relativ scăzut și a unui număr mic de elemente structurale.
Avantajele și dezavantajele compilatorilor și interpreților. Aplicații
Rețineți că aplicațiile compilate sunt mai rapide decât cele interpretate, dar, în același timp, codul mașină obținut ca urmare a compilării depinde de platforma hardware. Deci, un program scris și compilat pentru Windows nu va funcționa, de exemplu, în Linux. Așadar, în cazul aplicațiilor de internet, când este imposibil de spus în prealabil în ce mediu vor funcționa, acestea folosesc interpretare sau bytecode (în acest caz, programul sursă este convertit într-o formă intermediară care poate fi executată pe diverse hardware). platforme).