mediu

Ce este un compilator sau Cum să faci un computer să înțeleagă ce vrei de la el?

Cuprins:

Ce este un compilator sau Cum să faci un computer să înțeleagă ce vrei de la el?
Ce este un compilator sau Cum să faci un computer să înțeleagă ce vrei de la el?
Anonim

Ultima etapă 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ă computerele trebuie să efectueze comenzi într-un limbaj pe care îl înțeleg că este aproape de binar și funcționează cu structuri de date primitive (bit, octet sau cuvânt) pentru a efectua o sarcină. Procesul de traducere a operatorilor orientat spre probleme de limbi la nivel înalt în cod binar se numește traducere. Există două metode de traducere - compilare și interpretare.

Image

Compilator - ce este?

O analiză a numeroaselor interpretări ale termenilor „compilator” și „compilare” ne permite să identificăm următoarea definiție. Un compilator este un program conceput pentru a traduce textul unui algoritm original dintr-un limbaj de nivel înalt î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 obiectului rezultat într-un modul de program gata de utilizare.

Compilator și interpret - asemănări și diferențe

Interpretul este un utilitar, precum și un compilator, conceput pentru a traduce codul sursă în codul mașinii. Cu toate acestea, spre deosebire de compilator, interpretul este lansat de fiecare dată împreună cu programul și execută linia de traducere linie.

Putem spune că compilatorul și interpretul sunt procesoare de limbaj care permit computerului să recunoască și să execute comenzile date de programator.

Clasificarea compilatorului

Image

Compilatoarele sunt clasificate în principal după caracteristici legate de domeniile lor de aplicare practică.

Un compilator de vectorizare este un utilitar care traduce codul sursă în cod obiect și este adaptat pentru computere echipate cu procesoare vectoriale.

Compilatorul flexibil este programat într-un limbaj la nivel înalt într-un mod modular. Managementul acesteia se realizează cu ajutorul tabelelor. De asemenea, este posibil să o executați utilizând compilatorul compilatorului.

Un compilator incremental este un procesor de limbaj care re-traduce fragmente individuale din codul sursă și adăugări la acesta. Cu toate acestea, elimină recompilarea întregii aplicații.

Un compilator (pas cu pas) este un utilitar care compune secvențial independent fiecare declarație sau comandă din codul la nivel înalt sursă.

Un compilator este un compilator capabil să perceapă o descriere formală pentru un limbaj de programare și să genereze independent un compilator pentru orice limbaj.

Image

Compilatorul de debug vă permite să găsiți și să remediați unele tipuri de erori de sintaxă comise la scrierea codului sursă

Compilatorul rezident ocupă un loc permanent în memoria RAM și, prin urmare, este disponibil pentru reutilizare printr-o gamă largă de sarcini.

Compilatorul auto-compilat este scris în aceeași limbă din care este efectuată traducerea.

Compilatorul universal se bazează pe o descriere formală a parametrilor semantici și sintactici ai limbajului de intrare. Componentele principale ale unei astfel de utilități sunt nucleul, încărcătoarele sintactice și semantice.

Dispozitiv de compilare

În centrul oricărui compilator se află traducătorul și linkerul. Adesea, la compilare, se folosește un linker extern, iar compilatorul însuși îndeplinește doar funcția de traducere. De asemenea, se întâmplă ca compilatorul să fie implementat ca un fel de program manager asociat cu traducătorul (sau traducătorii, dacă s-au folosit diferite limbaje de programare la scrierea codului sursă) și linkerul și lansarea acestora, dacă este necesar.

Limbi de programare și metode de traducere

Image

În ciuda faptului că un program scris în orice limbaj de programare poate fi compilat sau interpretat, multe limbaje de nivel înalt sunt predispuse la una sau alta metodă de traducere. Deci, limbajul C a fost inițial conceput pentru compilare, iar Java - pentru interpretarea unui program scris. Compilatoarele C sunt dezvoltate destul de ușor, datorită nivelului său relativ scăzut și unui număr mic de elemente structurale.