ANU Computer Science Technical Reports

TR-CS-04-03


Alonso Marquez.
Efficient implementation of design patterns in Java programs.
February 2004.

[POSTSCRIPT (195608 bytes)] [PDF (115301 bytes)] [EPrints archive]


Abstract: Designing and implementing generic software components using design patterns like proxy and facade [Gamma et al. 1994] is commonly advocated in most application areas. Design patterns and genericity are language design techniques created to provide better semantic abstractions boundaries. However, most programming language implementations have give very little support to techniques that remove these abstraction boundaries to the extent necessary to permit efficient execution.

We present a general technique for optimization of Java programs that use any sort of data and/or behavior delegation. We define a group of basic program transformations that preserve the program semantics. They provide a foundation for more complex program transformations such as class inlining and class proxying with a broad range of applications in program optimization and semantic extension. We present several real applications including Orthogonal Persistence and automatic optimization of design patterns implemented using these techniques.


Technical Reports <Technical-DOT-Reports-AT-cs-DOT-anu.edu.au>
Last modified: Tue May 31 12:56:01 EST 2011