Bytecode: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 37.163.246.70 (discussione), riportata alla versione precedente di InternetArchiveBot
Etichetta: Rollback
m wl P-Code
 
(3 versioni intermedie di 3 utenti non mostrate)
Riga 14:
Oggi, per migliorare la velocità di esecuzione, anche molti linguaggi dinamici, come [[PHP]], [[Python]], [[Ruby (linguaggio di programmazione)|Ruby > 1.8]] o [[Tcl]] 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 linguaggi [[Ruby (linguaggio di programmazione)|Ruby 1.8]] o [[Perl]]<ref>Perl ha solo un supporto sperimentale per la pre-compilazione. {{Cita web | url=http://search.cpan.org/~nwclark/perl-5.8.8/ext/B/B/Bytecode.pm#KNOWN_BUGS | titolo=B::Bytecode Perl compiler's bytecode backend | autore=Beattie, Malcolm and Enache Adrian | anno=2003 | editore=[[CPAN]] }}</ref>, 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 dai [[pP-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.
 
=== Esempi ===
Riga 23:
* Il bytecode di molte implementazioni del linguaggio di programmazione [[Smalltalk]]
* Il linguaggio [[Ocaml]], opzionalmente il compilatore può produrre una forma di bytecode molto compatta
* La [[O-code|La macchina O-code]] del linguaggio di programmazione [[BCPL]]
* La [[p-Code|La macchina pP-Code]] dell'[[UCSD Pascal]], una implementazione particolare del linguaggio [[Pascal (linguaggio)|Pascal]]
* Il linguaggio di programmazione [[Icon (linguaggio)|Icon]]
 
Riga 34:
 
== Collegamenti esterni ==
* {{FOLDOC}}
* {{cita web|1=http://www.javaworld.com/javaworld/jw-09-1996/jw-09-bytecodes.html|2=Descrizione del bytecode di Java|lingua=en|accesso=20 agosto 2005|urlarchivio=https://web.archive.org/web/20050806005646/http://www.javaworld.com/javaworld/jw-09-1996/jw-09-bytecodes.html|dataarchivio=6 agosto 2005|urlmorto=sì}}
* {{cita web|http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html|Specifica della Java Virtual Machine|lingua=en}}