Bytecode: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
ampliato traducendo la versione inglese. |
aggiunto paragrafo sugli p-code, ed esempi di bytecode. |
||
Riga 10:
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. Il linguaggio [[Ruby]], invece, non usa il bytecode, ma traduce 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 pò 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 di bytecode==
*Bytecode di [[Java (linguaggio)|Java]], che viene eseguito dalla [[Java Virtual Machine]]
*Il [[Common Intermediate Language]] della piattaforma [[.NET_framework|.NET]], eseguito dal [[Common Language Runtime|Common Language Runtime (CLR)]], la macchina virtuale .NET
*[[CLISP]], una implementazione del [[Common Lisp]] il cui compilatore produce solo bytecode
*[[CMUCL]], una implementazione del [[Common Lisp]] che può produrre sia bytecode che codice macchina
*Il bytecode di molte implementazioni del linguaggio di programmazione [[Smalltalk]]
*Il linguaggio [[Ocaml]], opzionalmente il compilatore può produrre una forma di bytecode molto compatta
*[[O-code|La macchina O-code]] del linguaggio di programmazione [[BCPL]]
*[[p-Code|La macchina p-Code]] dell'[[Pascal UCSD]], una implementazione particolare del linguaggio [[Pascal (linguaggio)|Pascal]]
*Il linguaggio di programmazione [[Icon (linguaggio)|Icon]]
[[de:Bytecode]]
|