Compiling for multiple virtual machines targeting different processor architectures

   
   

A developer's system compiles a source-language program by parsing it into an intermediate language (IL) program that is independent of the architecture or resources of any particular processor. This system generates a set of machine independent annotations that record attributes and structure of the IL program such as variable definitions and uses. The annotations are in the form of a unique graph structure. Further annotations are used to associate the machine specific optimization information with each of many different microprocessors. The IL program and all the annotations are distributed to multiple user systems having mutually different virtual machines that translate the IL program into object language for their respective different processors. Optimizers in the virtual machines select graph edges based on the machine specific annotations to generate an optimized object program. The translators are table-driven. Entities in the IL program are keyed to entries in a replaceable table in each virtual machine.

Il sistema dello sviluppatore compila un programma della lingua d'origine analizzandolo in un programma intermedio di lingua (IL) che è indipendente dall'architettura o dalle risorse di tutto il processor particolare. Questo sistema genera un insieme delle annotazioni indipendenti della macchina che registrano gli attributi e la struttura del programma di IL quali le definizioni e gli usi variabili. Le annotazioni sono sotto forma d'una struttura di grafico unica. Ulteriori annotazioni sono usate per associare le informazioni specifiche di ottimizzazione della macchina con ciascuno di molti microprocessori differenti. Il programma di IL e tutte le annotazioni sono distribuiti ai sistemi multipli dell'utente che hanno macchine virtuali reciprocamente differenti che traducono il programma di IL in lingua di oggetto per i loro processor differenti rispettivi. Gli ottimizzatori nelle macchine virtuali selezionano i bordi del grafico basati sulle annotazioni specifiche della macchina per generare un programma di oggetto ottimizzato. I traduttori sono table-driven. Le entità nel programma di IL sono chiuse a chiave alle entrate in una tabella sostituibile in ogni macchina virtuale.

 
Web www.patentalert.com

< Smart card that can be configured for debugging and software development using secondary communication port

< Method and system for providing financial information and evaluating securities of a financial debt instrument

> Networking infrastructure for an operating room

> Linear and non-linear object management

~ 00112