MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Ecole Normale Sup'erieure de Lyon

Download:
pdf | ps
by Olivier Danvy, Kristoffer Hgsbro Rose
http://www.ens-lyon.fr/~krisrose/ftp/PAPERS/danvy+rose-rta98.ps.gz
Add To MetaCart

Abstract:

We demonstrate the usefulness of higher-order rewriting techniques for specializing programs, i.e., for partial evaluation. More precisely, we demonstrate how casting program specializers as combinatory reduction systems (CRSs) makes it possible to formalize the corresponding program transformations as meta-reductions, i.e., reductions in the internal "substitution calculus. " For partial-evaluation problems, this means that instead of having to prove on a case-by-case basis that one's "two-level functions " operate properly, one can concisely formalize them as a combinatory reduction system and obtain as a corollary that static reduction does not go wrong and yields a well-formed residual program. We have found that the CRS substitution calculus provides an adequate expressive power to formalize partial evaluation: it provides sufficient termination strength while avoiding the need for additional restrictions such as types that would complicate the description unnecessarily (for our purpose). In addition, partial evaluation provides a number of examples of higher-order rewriting where being higher order is a central (rather than an occasional or merely exotic) property. We illustrate this by demonstrating how standard but non-trivial partial-evaluation examples are handled with higher-order rewriting. 1

Citations

894 The Lambda Calculus: its Syntax and Semantics – Barendregt - 1984
579 Term rewriting systems – Klop - 1992
552 Partial evaluation and automatic program generation – Jones, Gomard, et al. - 1993
496 An Introduction to Metamathematics – Kleene - 1950
251 Call-by-name, call-by-value and the *-calculus – Plotkin - 1975
242 Tutorial notes on partial evaluation – Consel, Danvy - 1993
231 Combinatory reduction systems – Klop - 1980
150 Reasoning about programs in continuation-passing style – Sabry, Felleisen - 1992
128 Essentials of Programming Languages – Friedman, Wand, et al. - 2001
106 An experiment in partial evaluation: the generation of a compiler generator – Jones, Sestoft, et al. - 1989
102 Danvy and Andrzej Filinski. Representing control, a study of the CPS transformation – Olivier - 1992
43 Orthogonal higher-order rewrite systems are confluent – Nipkow - 1993
33 A Self-Applicable Partial Evaluator for Term Rewriting Systems – Bondorf - 1989
30 Oostrom V., van Raamsdonk F. Combinatory reduction systems: introduction and survey – Klop, Oostrom - 1993
25 The occurrence of continuation parameters in CPS terms – Danvy, Pfenning - 1995
25 Operational Reduction Models for Functional Programming Languages – Rose - 1996
23 Correctness of binding-time analysis – Palsberg - 1993
14 Optimization of equational programs using partial evaluation – Sherman, Strandh, et al.
13 combinators: A new implementation method for applicative languages – Super - 1982
12 Oostrom and Femke van Raamsdonk. Weak orthogonality implies confluence: the higher-order case – van - 1994
11 Oostrom and Femke van Raamsdonk. Comparing combinatory reduction systems and higher-order rewrite systems – van - 1993
8 Higher-order rewriting and partial evaluation – Danvy, Rose - 1998
8 Program abstraction and instantiation – Dershowitz - 1985
8 Compiling with reflections – Sabry, Wadler - 1996