Interpret (IT)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un interpret , în informatică și programare , este un program capabil să execute alte programe pornind direct de la codul sursă relativ scris într-un limbaj de nivel înalt , fără a fi compilat anterior ( cod obiect ), adică executarea instrucțiunilor în limba utilizată traducându-le din când în când în instrucțiuni de limbaj ale mașinii procesorului .

Descriere

Spre deosebire de un interpret, un compilator nu execută programul pe care îl primește ca intrare, ci îl traduce în limbajul mașinii (stocând codul obiect în fișier gata pentru executarea directă de către procesor ). Pentru orice limbaj de programare puteți scrie atât un interpret cât și un compilator, prin urmare, expresiile limbaj interpretat și limbajul compilat , deși comune, sunt necorespunzătoare, fiind concepte de interpretare și compilare referitoare la implementarea unui limbaj și nu limbajului în sine.

Motor de script

„Motorul de scriptare” este un motor care interpretează liste de comenzi, numite scripturi , formulate cu o sintaxă specifică, numită limbaj de scriptare . De obicei, găsim un motor de scriptare în care trebuie să oferim o mare flexibilitate pentru anumite aspecte, fără cerințe de viteză excesive. Simplitatea și imediatitatea sunt, prin urmare, cerințe fundamentale. Aceasta plasează motoarele de scriptare la un nivel ridicat de abstractizare .

argumente pro şi contra

Abordarea interpretată implică o eficiență mai redusă la rulare ; un program interpretat, care rulează, necesită mai multă memorie și este mai puțin rapid, datorită cheltuielilor generale introduse de interpretul însuși. În timpul execuției, interpretul trebuie, de fapt, să analizeze instrucțiunile pornind de la nivelul sintactic , să identifice acțiunile care trebuie efectuate (eventual transformând numele simbolice ale variabilelor implicate în adresele de memorie corespunzătoare) și să le execute; în timp ce instrucțiunile codului compilat, deja în limbajul mașinii, sunt încărcate și executate instantaneu de procesor .

Pe de altă parte, interpretarea unui program poate fi mai rapidă decât ciclul de compilare / rulare. Această diferență poate fi un avantaj în timpul dezvoltării, mai ales dacă acest lucru se face cu tehnici rapide de prototipare sau în timpul depanării . În plus, majoritatea interpreților permit utilizatorului să acționeze asupra programului care rulează suspendându-l, inspectând sau modificând conținutul variabilelor sale și așa mai departe, într-un mod care este adesea mai flexibil și mai puternic decât ceea ce se poate realiza pentru codul compilat. un depanator .

Abordări hibride

În schimb, există numeroase abordări hibride între limbaje complet interpretate și complet compilate. Unele versiuni ale Lisp permit ambele abordări și chiar permit executarea programelor parțial interpretate și parțial compilate, astfel încât, de exemplu, un nou subprogram să poată fi testat într-o formă interpretată și, după finalizarea depanării , să fie compilat pentru a-și îmbunătăți performanța. performanţă.

Mulți agenți utilizator nu execută direct codul sursă, ci îl convertesc în avans într-o formă internă mai compactă, de exemplu într-un arbore de analiză abstractă . Încă diferită este abordarea Emacs Lisp și Java , în care este utilizat un compilator care transformă codul sursă într-un format intermediar numit (pentru ambele limbi) bytecode , destul de aproape de limbajul mașinii (și, prin urmare, cu un cost de interpretare moderat), dar executat de un interpret și nu direct de procesor (și, prin urmare, portabil ).

O tehnică care a trezit un interes considerabil în ultimii ani (și care este aplicată de majoritatea implementărilor actuale ale Java și de limbajele familiei Microsoft .NET ) se numește „tocmai la timp” sau compilare JIT. Această tehnică poate fi considerată ca o optimizare a interpretării, în care interpretul compilează în timpul execuției fragmentele de cod care sunt executate cel mai frecvent, pentru a reduce costul execuțiilor lor ulterioare.

Elemente conexe

linkuri externe

Controlul autorității LCCN (EN) sh85067496 · GND (DE) 4162129-3 · BNF (FR) cb11938287v (data)
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT