Object oriented method and apparatus for class variable initialization

   
   

A compiler for object-oriented programming code in a language which employs run-time static initialization semantics analyzes the static initialization code to find a subset of initialization statements which must execute under all conditions, creates an pre-initialized image of the static storage using the subset, and removes statements which were pre-initialized from the final compiled code. Preferably, the compiler is a back-end compiler for the Java language, which converts Java bytecode into machine executable instructions. A static initializer method for each class is decomposed to construct a control flow graph for the method, which is then analyzed to identify statements in the source which must necessarily execute whenever the initialization method is called. The compile-time static storage image is pre-initialized to zero, except where affected by these identified statements, which are set at compile time as if the identified statements had executed. The identified statements are then removed from the code being compiled. Code size is thus reduced at the same time that performance at run time is improved as a result of not having to execute the removed initialization statements.

Un compilateur pour le code de programmation orienté objectivement dans une langue qui utilise la sémantique statique d'exécution d'initialisation analyse le code d'initialisation statique pour trouver un sous-ensemble de rapports d'initialisation qui doivent s'exécuter dans toutes les conditions, crée une image préinitialisée du stockage statique en utilisant le sous-ensemble, et enlève les rapports qui étaient préinitialisés du code compilé final. De préférence, le compilateur est un compilateur principal pour la langue de Java, qui convertit le bytecode de Java en instructions exécutables de machine. Une méthode statique d'initialiseur pour chaque classe est décomposée pour construire un graphique d'écoulement de commande pour la méthode, qui est alors analysée pour identifier des rapports dans la source qui doit nécessairement exécuter toutes les fois que la méthode d'initialisation s'appelle. L'image statique au moment de la compilation de stockage est préinitialisée à zéro, à moins qu'où affecté par ces rapports identifiés, aux lesquels sont placés compiliez le temps comme si les rapports identifiés s'étaient exécutés. Les rapports identifiés sont alors enlevés du code étant compilé. Le nombre d'instructions est ainsi réduit pendant que l'exécution au temps d'exécution est améliorée en raison pas de devoir exécuter les rapports enlevés d'initialisation.

 
Web www.patentalert.com

< Selectively enabling expression folding during program compilation

< Highly componentized system architecture with a loadable interprocess communication manager

> Method and apparatus for reducing hardware scan dump data

> Systems and methods for managing process control in a graphical user interface

~ 00149