Program adaptation based on program transformation

Much research effort in program transformation has traditionally been devoted to better compile programs. Key examples include program optimization and program parallelization. Program transformation has sometimes been used in program development to derive implementations from high-level specifications.This position paper advocates another promising application of program transformation: program adaptation. That is, the ability for a program to adapt to the context in which it is used. We claim that program adaptation is a key technique in the program development process and is applicable to real size systems.In the following sections, we first explain why program adaptation is important and what this process involves. Then, we discuss how program adaptation can be achieved. Finally, we outline research directions which can contribute to this line of work.

[1]  Lars Ole Andersen,et al.  Self-applicable C Program Specialization , 1992, PEPM.

[2]  Jim Lipkis,et al.  A New Look at Microkernel-Based UNIX Operating Systems : Lessons in Performance and Compatibility , 1991 .

[3]  Olivier Danvy,et al.  Tutorial notes on partial evaluation , 1993, POPL '93.

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

[5]  Dawson R. Engler,et al.  C: a language for high-level, efficient, and machine-independent dynamic code generation , 1995, POPL '96.

[6]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[7]  Charles Consel,et al.  A framework for application generator design , 1997, SSR '97.

[8]  Charles Consel,et al.  A general approach for run-time specialization and its application to C , 1996, POPL '96.

[9]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[10]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[11]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[12]  Erik Ruf,et al.  Data specialization , 1996, PLDI '96.

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

[14]  Dawson R. Engler,et al.  DCG: an efficient, retargetable dynamic code generation system , 1994, ASPLOS VI.