An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Debugging optimized code with dynamic deoptimization
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Simple and effective link-time optimization of Modula-3 programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Profile-guided receiver class prediction
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
A framework for selective recompilation in the presence of complex intermodule dependencies
Proceedings of the 17th international conference on Software engineering
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An orthogonally persistent Java
ACM SIGMOD Record
Practical experience with an application extractor for Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Partial redundancy elimination for access path expressions
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Partial Redundancy Elimination for Access Path Expressions
Proceedings of the Workshop on Object-Oriented Technology
Hi-index | 0.00 |
Aggressive optimization of programs often relies on analysis and transformation that cuts across the natural abstraction boundaries of the source programming language, such as procedures in procedural languages, or classes in class-based object-oriented languages like Java. Unfortunately, execution environments for languages such as Java dynamically link code into the application as it executes, precluding cross-cutting analyses and optimizations that are too expensive to apply on-line.Fortunately, persistent object systems usually treat the code base as an integral part of the persistent store. This code base approximates the notion of "wholeprogram" that has been exploited in other optimization frameworks. This paper describes an analysis and optimization framework for Java that operates against the persistent code base, and couples the results of analysis and optimization with the run-time system to ensure continued correctness of the resulting code. The framework performs extensive analysis over the code in the store, supporting optimizations that cut across class boundaries in ways that are not safe to perform off-line on stand-alone Java classes.