Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikipediaL'enciclopedia libera
Ricerca

Bytecode

Da Wikipedia, l'enciclopedia libera.

Ininformatica, ilbytecode è un linguaggio intermedio più astratto tra illinguaggio macchina e illinguaggio di programmazione, usato per descrivere le operazioni che costituiscono unprogramma. È così chiamato perché spesso le operazioni hanno un codice che occupa un solobyte, anche se la lunghezza dell'interaistruzione può variare perché ogni operazione ha un numero specifico di parametri su cui operare. I parametri di queste operazioni possono consistere di registri oindirizzi di memoria, un po' come accade per il linguaggio macchina.

Descrizione

[modifica |modifica wikitesto]

Un linguaggio intermedio come il bytecode è molto utile a coloro che realizzanolinguaggi di programmazione perché riduce la dipendenza dall'hardware e facilita la creazione degliinterpreti del linguaggio stesso.

Il bytecode può anche essere usato comerappresentazione intermedia di unprogramma da far compilare a un tipo speciale dicompilatore, chiamatocompilatore just-in-time il quale traduce il bytecode in linguaggio macchina immediatamente prima dell'esecuzione del programma stesso, per velocizzarne l'esecuzione.

Un programma in bytecode è eseguito mediante un secondo programma che ne interpreta le istruzioni. Questointerprete è spesso indicato con il terminemacchina virtuale, in quanto può essere visto dalprogrammatore come uncomputer astratto che realizza al suo interno gran parte delle funzionalità di un computer reale. Questa astrazione consente di scrivere programmiportabili e cioè architettati in modo tale da poter essere eseguiti su diversi tipi disistemi operativi e diarchitetture hardware. Questo è un vantaggio che hanno anche ilinguaggi interpretati, tuttavia un interprete di bytecode risulta essere molto più veloce di un interprete di unlinguaggio di programmazione ad alto livello perché è un linguaggio con poche e semplici istruzioni e più vicino al modo di funzionamento dell'hardware (processore ememoria) del computer.

La primaimplementazione di compilatore dacodice sorgente a bytecode, nonché di interprete di bytecode, è stato il sistemaSmalltalk, sviluppato neglianni 1970 alcentro di ricerca di Palo Alto della Xerox.

Il linguaggio più famoso tra quelli che fanno uso del bytecode èJava. Java ha sia una macchina virtuale (Java Virtual Machine) che interpreta il codice bytecode, sia un compilatore just-in-time che traduce il bytecode in linguaggio macchina. La piattaforma.NET, e quindi anche il linguaggioC#, ha a disposizione tecniche simili a quelle del linguaggio Java. Il linguaggioGambas fa uso di Bytecode.

Oggi, per migliorare la velocità di esecuzione, anche molti linguaggi dinamici, comePHP,Python,Ruby > 1.8 oTcl fanno uso del bytecode in maniera più o meno esplicita a seconda delle implementazioni. Essi traducono il programma in bytecode e poi lo interpretano tramite una macchina virtuale. I linguaggiRuby 1.8 oPerl[1], invece, non usano il bytecode, ma traducono il codice in una struttura sintattica ad albero che ricorda molto la rappresentazione intermedia che si usa nei compilatori; tale struttura viene poi usata dall'interprete per eseguire il programma.

Un tipo particolare di bytecode è costituito daiP-Code, che possono occupare più di un singolo byte e avere istruzioni di varie dimensioni, un po' come leopcode di molteCPU. I p-Code funzionano a un livello di astrazione molto più alto rispetto ai bytecode, essi, ad esempio, possono avere operazioni tipo "stampa questa stringa" o "pulisci lo schermo". Sia il linguaggioBASIC che alcune versioni delPascal usano i p-Code.

Esempi

[modifica |modifica wikitesto]

Note

[modifica |modifica wikitesto]
  1. ^Perl ha solo un supporto sperimentale per la pre-compilazione. Beattie, Malcolm and Enache Adrian,B::Bytecode Perl compiler's bytecode backend, susearch.cpan.org,CPAN, 2003.

Voci correlate

[modifica |modifica wikitesto]

Collegamenti esterni

[modifica |modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Bytecode&oldid=144013927"
Categoria:

[8]ページ先頭

©2009-2025 Movatter.jp