Bytecode

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

În informatică , bytecode este un limbaj intermediar mai abstract între limbajul mașinii și limbajul de programare , folosit pentru a descrie operațiile care alcătuiesc un program . Se numește așa deoarece operațiunile au adesea cod care ocupă doar un octet , deși lungimea întregii instrucțiuni poate varia deoarece fiecare operație are un număr specific de parametri pe care să opereze. Parametrii acestor operații pot consta din registre sau adrese de memorie , un pic ca limbajul mașinii.

Descriere

Un limbaj intermediar, cum ar fi bytecode, este foarte util celor care realizează limbaje de programare, deoarece reduce dependența de hardware și facilitează crearea de interpreți de limbaj.

Bytecode poate fi, de asemenea, utilizat ca reprezentare intermediară a unui program care urmează să fie compilat de un tip special de compilator , numit compilator just-in-time, care traduce bytecode-ul în limbajul mașinii imediat înainte de executarea programului în sine, pentru a accelera executarea acestuia .execuție.

Un program bytecode este executat de un al doilea program care interpretează instrucțiunile sale. Acest interpret este adesea menționat cu termenul de mașină virtuală , deoarece programatorul poate fi văzut ca un computer abstract care îndeplinește cea mai mare parte a funcționalității unui computer real din cadrul acestuia. Această abstractizare vă permite să scrieți programe portabile , adică arhitecturate în așa fel încât să poată fi rulate pe diferite tipuri de sisteme de operare și arhitecturi hardware . Acesta este un avantaj pe care îl au și limbajele interpretate , totuși un interpret de bytecode se dovedește a fi mult mai rapid decât un interpret al unui limbaj de programare la nivel înalt , deoarece este un limbaj cu instrucțiuni puține și simple și mai aproape de modul de funcționare a hardware-ul computerului ( procesor și memorie ).

Prima implementare a codului sursă către compilatorul bytecode, precum și interpretorul bytecode, a fost sistemul Smalltalk , dezvoltat în anii 1970 la centrul de cercetare Palo Alto al Xerox .

Cel mai faimos limbaj dintre cele care folosesc codul de byt este Java . Java are atât o mașină virtuală ( Java Virtual Machine ) care interpretează codul bytecode, cât și un compilator just-in-time care traduce bytecode-ul în limbajul mașinii. Platforma .NET și, prin urmare, și limbajul C # , are tehnici similare cu cele ale limbajului Java. Limba Gambas folosește Bytecode.

Astăzi, pentru a îmbunătăți viteza de execuție, multe limbaje dinamice, cum ar fi PHP , Python , Ruby> 1.8 sau Tcl folosesc codul de octet mai mult sau mai puțin explicit în funcție de implementări. Ei traduc programul în bytecode și apoi îl interpretează printr-o mașină virtuală. Limbile Ruby 1.8 sau Perl [1] , pe de altă parte, nu folosesc bytecode, ci traduc codul într-o structură de arbore sintactică care amintește foarte mult de reprezentarea intermediară utilizată în compilatoare; această structură este apoi utilizată de interpret pentru a executa programul.

Un anumit tip de bytecode este constituit de coduri p , care pot ocupa mai mult de un singur octet și au instrucțiuni de diferite dimensiuni, un pic ca opcodurile multor procesoare . Codurile P funcționează la un nivel de abstractizare mult mai ridicat decât codurile byt, acestea, de exemplu, pot avea operații precum „tipăriți acest șir” sau „ștergeți ecranul”. Atât limbajul BASIC , cât și unele versiuni ale lui Pascal folosesc coduri p.

Exemple

Notă

  1. ^ Perl are doar suport experimental pre-compilare. Beattie, Malcolm și Enache Adrian, B :: Backt bytecode al compilerului Bytecode Perl , su search.cpan.org , CPAN , 2003.

Elemente conexe

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT