Etapa finală a creării unui program estetraducerea unui algoritm scris într-unul dintre limbajele de programare (C / C ++, Pascal etc.) într-un limbaj mașină de nivel scăzut. Acest lucru se datorează faptului că computerele pentru a efectua orice activitate trebuie să seteze comenzi într-un limbaj pe care îl înțeleg, aproape de binar și care funcționează cu structuri de date primitive (biți, octeți sau cuvânt). Procesul de traducere a operatorilor orientați spre probleme ale limbajelor de nivel înalt în cod binar se numește traducere. Există două metode de traducere - compilarea și interpretarea.
O analiză a numeroaselor interpretări ale termenilor „compilator” și „compilare” ne permite să evidențiem următoarea definiție. Compilator Este un program conceput pentru a traducetextul algoritmului original dintr-un limbaj de nivel înalt într-un set echivalent de instrucțiuni într-un limbaj orientat spre mașină. Acesta este așa-numitul cod obiect, pentru conectarea ulterioară a codului obiect rezultat într-un modul de program gata de utilizat.
Interpret Este un utilitar, la fel ca 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ă cu programul și efectuează traducerea linie cu linie.
Putem spune că un compilator și un interpret sunt procesoare de limbaj care permit unei mașini de calcul să recunoască și să execute instrucțiunile date de un programator.
Compilatoarele sunt clasificate în principal în funcție de caracteristicile asociate domeniilor de aplicare practică a acestora.
Compilator de vectorizare Este un utilitar care traduce codul sursă în cod obiect și este adaptat pentru computerele echipate cu procesoare vectoriale.
Compilator flexibil programat într-un limbaj de nivel înalt pe o bază modulară. Gestionarea sa se realizează folosind tabele. De asemenea, este posibil să-l executați cu un compilator de compilare.
Compilator incremental Este un procesor de limbaj care re-traduce fragmente individuale ale codului sursă și adăugiri la acesta. Cu toate acestea, elimină necesitatea recompilării întregii aplicații.
Interpretare (pas cu pas) compilator Este un utilitar care compilează independent fiecare instrucțiune sau comandă a codului sursă la nivel înalt în mod secvențial.
Compilator compilator - un traducător capabil să accepte o descriere formală pentru un limbaj de programare și să genereze independent un compilator pentru orice limbaj.
Compilator de depanare vă permite să găsiți și să eliminați unele tipuri de erori de sintaxă făcute la scrierea codului sursă
Compilator rezident ocupă un loc permanent în RAM și, prin urmare, este disponibil pentru reutilizare printr-o gamă largă de sarcini.
Compilator auto-compilat scrise în aceeași limbă din care se efectuează difuzarea.
Compilator generic se bazează pe o descriere formală a parametrilor semantici și sintactici ai limbajului de intrare. Principalele componente ale unui astfel de utilitar sunt nucleele, încărcătoarele sintactice și semantice.
Orice compilator se bazează pe un traducător șilinker. 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 de manager asociat traducătorului (sau traducătorilor, dacă au fost folosite diferite limbaje de programare la scrierea codului sursă) și linker-ului, și începe executarea lor dacă este necesar.
În ciuda faptului că programul scris înorice limbaj de programare, puteți compila și interpreta, multe limbaje de nivel înalt au o predispoziție la una sau alta metodă de traducere. Deci, limbajul C a fost inițial conceput pentru compilare, iar Java - pentru interpretarea programului scris. Compilatoarele limbajului C sunt dezvoltate destul de ușor, datorită nivelului său relativ scăzut și a unui număr mic de elemente structurale.
Rețineți că aplicațiile compilate auviteză mai mare în comparație cu cele interpretate, dar în același timp codul rezultat al mașinii de compilare depinde de platforma hardware. Astfel, un program scris și compilat pentru Windows nu va funcționa, de exemplu, pe Linux. Prin urmare, în cazul aplicațiilor de Internet, când este imposibil să se spună în prealabil în ce mediu vor funcționa, utilizează interpretarea sau codul secundar (în acest caz, programul original este convertit într-o formă intermediară care poate fi executată pe diferite hardware platforme).