Bytecode: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ValterVBot (discussione | contributi)
m Bot: Elimino interlinks
Nessun oggetto della modifica
Riga 12:
Il linguaggio più famoso tra quelli che fanno uso del bytecode è [[Java (linguaggio)|Java]]. Java ha sia una macchina virtuale ([[Macchina virtuale Java|Java Virtual Machine]]) che interpreta il codice bytecode, sia un compilatore just-in-time che traduce il bytecode in linguaggio macchina. La piattaforma [[Framework_.NET|.NET]], e quindi anche il linguaggio [[C_sharp|C#]], ha a disposizione tecniche simili a quelle del linguaggio Java.
 
Oggi, per migliorare la velocità di esecuzione, anche molti linguaggi interpretati, come [[Perl]], [[PHP]] o [[Python]], fanno uso del bytecode. Essi traducono il programma in bytecode e poi lo interpretano tramite una macchina virtuale. IlI linguaggiolinguaggi [[Ruby]] o [[Perl]]<ref> Perl ha solo un supporto sperimentale per la pre-compilazione. {{cite web | url=http://search.cpan.org/~nwclark/perl-5.8.8/ext/B/B/Bytecode.pm#KNOWN_BUGS | title=B::Bytecode Perl compiler's bytecode backend | author=Beattie, Malcolm and Enache Adrian | year=2003 | publisher=[[CPAN]] }}</ref>, invece, non usausano il bytecode, ma traducetraducono 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 dai [[p-Code]], che possono occupare più di un singolo byte e avere istruzioni di varie dimensioni, un po' come le [[opcode]] di molte [[CPU]]. 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 linguaggio [[BASIC]] che alcune versioni del [[Pascal (linguaggio)|Pascal]] usano i p-Code.
Riga 33:
* {{en}} [http://www.javaworld.com/javaworld/jw-09-1996/jw-09-bytecodes.html Descrizione del bytecode di Java]
* {{en}} [http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html Specifica della Java Virtual Machine]
 
==Notes==
{{reflist|1}}
 
[[Categoria:Linguaggi di programmazione]]