The present invention provides a compiler that can compile Java byte code at high speed while employing only limited resources. The technique converts byte code into intermediate code that employs, as an opcode, an address of an execution routine that corresponds to a byte code, and executes the execution routines in a sequential order corresponding to that of the intermediate code. The length of the intermediate code is constant and the bit location of the opcode is also constant. The execution routine is stored in sequential areas in a memory, and an offset of the execution routine group from the head address of the sequential memory area is employed as an opcode. Furthermore, by employing empty pipelines in the CPU, one part (operand generation and a jump) of an instruction group for jumping to the next intermediate code execution routine, and one part (prefetching of intermediate code and address calculation of a execution routine) of an instruction group for jumping to the next plus one intermediate execution routine can be executed in parallel to the original intermediate code process. Further, rule-based optimization using idioms is performed, without requiring analysis of the program structure.

La actual invención proporciona un recopilador que pueda compilar código del octeto de Java en la velocidad mientras que emplea solamente recursos limitados. La técnica convierte código del octeto en el código intermedio que emplea, como opcode, una dirección de una rutina de la ejecución que corresponda a un código del octeto, y ejecuta las rutinas de la ejecución en una orden secuencial que corresponde a la del código intermedio. La longitud del código intermedio es constante y la localización de pedacito del opcode es también constante. La rutina de la ejecución se almacena en áreas secuenciales en una memoria, y una compensación del grupo rutinario de la ejecución de la dirección principal del área de memoria secuencial se emplea como opcode. Además, empleando tuberías vacías en la CPU, una porción (generación del operando y un salto) de un grupo de la instrucción para saltar a la rutina intermedia siguiente de la ejecución del código, y una porción (el prefetching del cálculo intermedio del código y de dirección de una rutina de la ejecución) de un grupo de la instrucción para saltar al siguiente más una rutina intermedia de la ejecución se pueden ejecutar en paralelo al proceso intermedio original del código. Además, la optimización basada en las reglas que usa idiomas se realiza, sin requerir el análisis de la estructura del programa.

 
Web www.patentalert.com

< (none)

< Method and apparatus to selectively control processing of a method in a java virtual machine

> Synthesis of arrays and records

> (none)

~ 00021