Limbi compilate și interpretate

Limbi compilate și interpretate
Limbile de programare sunt împărțite în două clase - compilate și interpretate.

Programul este un limbaj compilat cu ajutorul software special compilator este convertit (compilat) într-un set de instrucțiuni pentru tipul de procesor (cod mașină) și apoi stocate într-un fișier executabil care poate fi rulat pentru a efectua un program de sine stătător. Cu alte cuvinte, compilatorul traduce programul dintr-un limbaj de nivel înalt într-un limbaj de nivel scăzut pe care procesorul îl înțelege.







Dacă programul este scris într-o limbă interpretată, atunci interpretul execută direct (interpretează) textul fără traducere anterioară. Programul rămâne în limba originală și nu poate fi pornit fără un interpret. Putem spune că procesorul de calculator este un interpret al codului mașinii.

Pe scurt, compilatorul traduce programul în limbaj mașină imediat și complet, creând un program separat, iar interpretul traduce direct în limbaj mașină în timpul executării programului.

Separarea în limbi compilate și interpretate este oarecum arbitrară. Deci, pentru orice limbă tradusă în mod tradițional, cum ar fi, de exemplu, Pascal, puteți scrie un interpret. În plus, cele mai moderne interpreți „curate“ nu îndeplinesc structura limbajului în sine, și le compilează într-un nivel ridicat de reprezentare intermediară (de exemplu, o variabile dereferire și macro-uri de prezentare).







Pentru orice limbă interpretată, puteți crea un compilator - de exemplu, limba Lisp, interpretată inițial, poate fi compilată fără restricții. Codul creat în timpul executării programului poate fi, de asemenea, compilat dinamic în timpul execuției.

De regulă, programele compilate rulează mai repede și nu necesită programe suplimentare de execuție, deoarece au fost deja traduse în limba mașinii. Cu toate acestea, de fiecare dată când modificați textul programului, trebuie să îl recompilați, ceea ce creează dificultăți în dezvoltare. În plus, programul compilat poate fi rulat numai pe același tip de calculatoare și, de regulă, în cadrul aceluiași sistem de operare, pe care a fost proiectat compilator. Pentru a crea un executabil pentru un alt tip de mașină, este necesară o nouă compilare.

Limbile interpretate au anumite capacități suplimentare specifice (a se vedea mai sus), în plus, programele pot fi difuzate imediat după schimbare, ceea ce facilitează dezvoltarea. Un program într-o limbă interpretată poate fi adesea rulat pe diferite tipuri de mașini și sisteme de operare fără efort suplimentar. Cu toate acestea, programele interpretate sunt executate mult mai lent decât programele compilate, în plus, acestea nu pot fi executate fără un program de interpret suplimentar.

Unele limbi, de exemplu, Java și C #, sunt compilate și interpretate. Anume, programul nu este compilat într-o limbă a mașinii, ci într-un cod de nivel scăzut independent de mașină, cod octet. Codul octet este executat apoi de mașina virtuală. Pentru a executa interpretarea bytecode este utilizat în mod obișnuit, deși părți din ea pentru a accelera programul de lucru poate fi tradus în cod mașină la programul de tehnologie de rulare de compilare „on the fly» (Just-in-time de compilare, JIT). Pentru Java, octetul este executat de Java Virtual Machine (JVM), pentru C # - Common Language Runtime.

O astfel de abordare într-un anumit sens permite utilizarea avantajelor interpreților și ale compilatorilor. De asemenea, trebuie să menționăm limba originală Forth, care este interpretată și compilată în același timp.







Articole similare

Trimiteți-le prietenilor: