Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
SIGGRAPH '95 Proceedings of the 22nd annual conference on Computer graphics and interactive techniques
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Towards Automatic Specialization of Java Programs
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Using indexed data structures for program specialization
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Hi-index | 0.00 |
The platform neutrality of Java programs allows them to run on heterogeneous computers. In the distributed environment, however, Java programs often cause performance problem because they are not implemented for specific clients so that they may conflict with their usage patterns at the client side. In this paper, we present a mechanism to address this problem by optimizing Java programs using program specialization technique. Unlike traditional program specialization, our specialization method does not encode the result of specialization only into run-time code. Instead, it encodes the values of multi-valued static expressions into indexed data structure that is referenced by run-time code, and single-valued static expressions into run-time code. With this approach, we can address the code explosion problem of traditional program specialization. With preliminary implementation, we achieved improvement in performance up to a factor of 9 with very low memory and space requirements and overheads.