Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
SIGGRAPH '95 Proceedings of the 22nd annual conference on Computer graphics and interactive techniques
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Optimizing ML with run-time code generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
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)
Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Static and Dynamic Program Compilation by Interpreter Specialization
Higher-Order and Symbolic Computation
Java Platform Performance: Strategies and Tactics
Java Platform Performance: Strategies and Tactics
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Combining Program and Data Specialization
Higher-Order and Symbolic Computation
Design and Partial Evaluation of Meta-Objects for a Concurrent Reflective Language
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Automatic Specialization of Java Programs in the Distributed Environment
ICOIN '02 Revised Papers from the International Conference on Information Networking, Wireless Communications Technologies and Network Applications-Part II
Removing Reflection from Java Programs Using Partial Evaluation
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Specializing The Java Object Serialization Using Partial Evaluation For A Faster RMI
ICPADS '01 Proceedings of the Eighth International Conference on Parallel and Distributed Systems
Automatic program specialization for interactive media
Automatic program specialization for interactive media
Partial evaluation using dependence graphs
Partial evaluation using dependence graphs
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
Partial evaluation of model transformations
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
Given a program and values of static (fixed) inputs, program specialization generates an optimized version of the program that only requires dynamic (run-time) inputs. It has been an useful tool for such areas as operating systems, multimedia applications, and scientific applications. However, the size of specialized code may grow up exponentially which makes program specialization impractical for many applications. In this paper, we present a mechanism to address this problem by using indexed data structures. Unlike traditional program specialization, which encodes the result of specialization only into run-time code, our method encodes the values of multi-valued static expressions into indexed data structures and single-valued static expressions into run-time code. Because the sizes of the indexed data structures are much smaller than that of program code, we can overcome the size problem of program specialization. With a preliminary implementation for Java, we achieved improvement in performance up to a factor of 3 with very low memory and space requirements and overheads.