Partial Evaluation of Higher-order Natural-semantics Derivations

We use on-line partial-evaluation technology to generate partial derivations from natural (big-step) semantics deenitions. First, we reformat the big-step rules into a small-step form, and we extend big-step semantics to be higher-order, that is, we allow data structures like closures to contain partial derivations. Next, we apply a supercompilation algorithm to the transformed semantics, thereby producing partial derivations for programs and exposing the programs' control structures. The resulting system can perform static analysis on incomplete or \modular" programs and can do double duty as a link-time static analyzer; these are signiicant steps towards modular program analysis.

[1]  Neil D. Jones,et al.  What Not to Do When Writing an Interpreter for Specialisation , 1996, Dagstuhl Seminar on Partial Evaluation.

[2]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[3]  Valentin F. Turchin,et al.  The concept of a supercompiler , 1986, TOPL.

[4]  David A. SchmidtKansas Limiting State Explosion with Filter-Based Re nement , 1997 .

[5]  Jan Willem Klop,et al.  Term Rewriting Systems: From Church-Rosser to Knuth-Bendix and Beyond , 1990, ICALP.

[6]  Patrick Cousot,et al.  Inductive definitions, semantics and abstract interpretations , 1992, POPL '92.

[7]  John P. Gallagher,et al.  Tutorial on specialisation of logic programs , 1993, PEPM '93.

[8]  David A. Schmidt Abstract Interpretation in the Operational Semantics Hierarchy , 1997 .

[9]  Robert Glück,et al.  Partial Deduction and Driving are Equivalent , 1994, PLILP.

[10]  Valentin F. Turchin,et al.  Program transformation by supercompilation , 1985, Programs as Data Objects.

[11]  Robert Glück,et al.  A Roadmap to Metacomputation by Supercompilation , 1996, Dagstuhl Seminar on Partial Evaluation.

[12]  Roberto Giacobazzi,et al.  Compositional analysis of modular logic programs , 1993, POPL '93.

[13]  Jan Komorowski,et al.  An Introduction to Partial Deduction , 1992, META.

[14]  Robert Glück,et al.  Occam's Razor in Metacompuation: the Notion of a Perfect Process Tree , 1993, WSA.

[15]  Valérie Gouranton,et al.  Derivation of Static Analysers of Functional Programs from Path Properties of a Natural Semantics , 1994 .

[16]  John P. Gallagher,et al.  Regular Approximation of Computation Paths in Logic and Functional Languages , 1996, Dagstuhl Seminar on Partial Evaluation.

[17]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[18]  Robert Glück,et al.  An Algorithm of Generalization in Positive Supercompilation , 1995, ILPS.

[19]  Thierry Despeyroux,et al.  Executable Specification of Static Semantics , 1984, Semantics of Data Types.

[20]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[21]  Morten Heine Ssrensen Properties of Innnite Reduction Paths in Untyped -calculus , 2022 .

[22]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[23]  Orna Grumberg,et al.  Abstract interpretation of reactive systems , 1997, TOPL.

[24]  Neil D. Jones,et al.  The Essence of Program Transformation by Partial Evaluation and Driving , 1999, Logic, Language and Computation.