Partial Evaluation for Class-Based Object-Oriented Languages

Object-oriented programming facilitates the development of generic software, but at a significant cost in terms of performance. We apply partial evaluation to object-oriented programs, to automatically map generic software into specific implementations. In this paper we give a concise, formal description of a simple partial evaluator for a minimal object-oriented language, and give directions for extending this partial evaluator to handle realistic programs.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  Lars Ole Andersen Binding-time analysis and the taming of C pointers , 1993, PEPM '93.

[3]  Akinori Yonezawa,et al.  Partial Evaluation of Call-by-Value lambda-Calculus with Side-Effects , 1997, PEPM.

[4]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[5]  Ulrik Pagh Schultz,et al.  Specialization patterns , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[6]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[7]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[8]  Ulrik Pagh Schultz,et al.  Harissa: A Hybrid Approach to Java Execution , 1999, IEEE Softw..

[9]  Jens Palsberg,et al.  Making Type Inference Practical , 1992, ECOOP.

[10]  Todd L. Veldhuizen C++ Templates as Partial Evaluation , 1999, PEPM.

[11]  Crispin Cowan,et al.  Declarative specialization of object-oriented programs , 1997, OOPSLA '97.

[12]  Charles Consel,et al.  A tour of Schism: a partial evaluation system for higher-order applicative languages , 1993, PEPM '93.

[13]  Jong-Deok Choi,et al.  Interprocedural pointer alias analysis , 1999, TOPL.

[14]  Jens Palsberg,et al.  Object-oriented type inference , 1991, OOPSLA '91.

[15]  Ulrik Pagh Schultz,et al.  Towards Automatic Specialization of Java Programs , 1999, ECOOP.

[16]  Semantics-Based Program Manipulation,et al.  Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'93, Copenhagen, Denmark, June 14-16, 1993 , 1993, PEPM.

[17]  John W. Lloyd,et al.  Partial Evaluation in Logic Programming , 1991, J. Log. Program..

[18]  Nobuhisa Fujinami,et al.  Determination of Dynamic Method Dispatches Using Run-Time Code Generation , 1998, Types in Compilation.

[19]  Ulrik Pagh Schultz,et al.  Automatic program specialization for Java , 2000, TOPL.

[20]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[21]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[22]  Robert Glück,et al.  Partial Evaluation of Numerical Programs in Fortran , 1994, PEPM.

[23]  Jacques Noyé,et al.  Effective Specialization of Realistic Programs via Use Sensitivity , 1997, SAS.

[24]  Andrew A. Chien,et al.  Precise Concrete Type Inference for Object-Oriented Languages , 1994, OOPSLA.

[25]  Andrew A. Chien,et al.  Precise concrete type inference for object-oriented languages , 1994, OOPSLA 1994.

[26]  David Grove,et al.  Selective specialization for object-oriented languages , 1995, PLDI '95.

[27]  Jacques Noyé,et al.  A Uniform Approach for Compile-Time and Run-Time Specialization , 1996, Dagstuhl Seminar on Partial Evaluation.