A program interpreter for computer programs written in a bytecode language,
which uses a restricted set of data type specific bytecodes. The
interpreter, prior to executing any bytecode program, executes a bytecode
program verifier procedure that verifies the integrity of a specified
program by identifying any bytecode instruction that would process data of
the wrong type for such a bytecode and any bytecode instruction sequences
in the specified program that would cause underflow or overflow of the
operand stack. If the program verifier finds any instructions that violate
predefined stack usage and data type usage restrictions, execution of the
program by the interpreter is prevented. After pre-processing of the
program by the verifier, if no program faults were found, the interpreter
executes the program without performing operand stack overflow and
underflow checks and without performing data type checks on operands
stored in operand stack. As a result, program execution speed is greatly
improved.
Un interpretatore di programma per i programmi destinati all'elaboratore scritti in una lingua del bytecode, che usa un insieme limitato del tipo di dati bytecodes specifici. L'interpretatore, prima dell'esecuzione del tutto il programma del bytecode, esegue una procedura della macchina verificatrice di programma del bytecode che verifica l'integrità di un programma specificato identificando qualunque istruzione del bytecode che procederebbe i dati del tipo errato per un tal bytecode e di tutte le sequenze di istruzione del bytecode nel programma specificato che causerebbe il underflow o il trabocco della pila di operando. Se la macchina verificatrice di programma trova qualunque istruzioni che violano l'uso della pila ed il tipo di dati predefiniti limitazioni di uso, l'esecuzione del programma dall'interpretatore è evitata. Dopo che il pre-processing del programma dalla macchina verificatrice, se nessun difetto di programma fosse trovato, l'interpretatore esegua il programma senza effettuare i controlli di trabocco e di underflow di pila di operando e senza effettuare il tipo di dati verifica gli operandi immagazzinati nella pila di operando. Di conseguenza, la velocità di esecuzione di programma notevolmente è migliorata.