Object-oriented program specialization: Aspects into Aspects - or maybe not?
Ulrik Pagh Schultz · 2001
Automatic program specialization is a software engineering technique that configures a program fragment by generating an implementation dedicated to a specific usage context. Given a generic component that solves a whole family of problems and that is implemented in a standard programming language, program specialization can automatically configure this component by generating a specialized implementation. We consider automatic program specialization implemented using partial evaluation, which performs aggressive interprocedural constant propagation of all data types, and performs constant folding and control-flow simplifications based on the usage context. Automatic program specialization has recently been defined in the context of object-oriented languages, and is here referred to as object-oriented program specialization. As part of this work, we have developed an automatic program specializer for Java, named JSpec, which has been shown to give significant execution-time speedups on large programs.