Polymorphic Binding-Time Analysis

Binding time analysis is an important part of off-line partial evaluation, annotating expressions as being safely evaluable from known data or possibly depending on unknown data. Most binding-time analyses have been monovariant, allowing only one binding-time description for each function. The idea of polyvariance is to allow multiple binding time descriptions of each function, by duplicating the function [6, 2] or by associating a set of binding time descriptions to each function [3]. Instead we present an inference based binding time analysis polymorphic in binding time values. This polymorphism captures a very powerful notion of polyvariance limited only by the (standard) types of the language. Polymorphism gives a much simpler definition than the known polyvariant schemes allowing us to reason formally about the system and prove it correct.

[1]  Dominique Clément,et al.  A simple applicative language: mini-ML , 1986, LFP '86.

[2]  Jesper Jørgensen,et al.  Generating a compiler for a lazy language by partial evaluation , 1992, POPL '92.

[3]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[4]  John Launchbury,et al.  Projection factorisations in partial evaluation , 1991 .

[5]  David Sands,et al.  Binding time analysis: a new PERspective , 1991, PEPM '91.

[6]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[7]  Bernhard Rytz,et al.  A Polyvariant Binding Time Analysis , 1992, PEPM.

[8]  J. Girard,et al.  Proofs and types , 1989 .

[9]  Prateek Mishra,et al.  Polymorphic Subtype Inference: Closing the Theory-Practice Gap , 1989, TAPSOFT, Vol.2.

[10]  Anders Bondorf,et al.  Automatic Autoprojection of Higher Order Recursive Equations , 1990, Sci. Comput. Program..

[11]  Carsten K. Gomard Partial type inference for untyped functional programs , 1990, LISP and Functional Programming.

[12]  Mikhail A. Bulyonkov Extracting polyvariant binding time analysis from polyvariant specializer , 1993, PEPM '93.

[13]  Torben Æ. Mogensen Binding Time Analysis for Polymorphically Typed Higher Order Languages , 1989, TAPSOFT, Vol.2.

[14]  Mitchell Wand,et al.  Specifying the correctness of binding-time analysis , 1993, POPL '93.

[15]  Carsten K. Gomard A self-applicable partial evaluator for the lambda calculus: correctness and pragmatics , 1992, TOPL.

[16]  University of Glasgow , 1862, Nature.

[17]  Flemming Nielson,et al.  Inference Systems for Binding Time Analysis , 1992, WSA.

[18]  Jens Palsberg,et al.  Correctness of binding-time analysis , 1993, Journal of Functional Programming.

[19]  Christian Mossin,et al.  Partial evaluation of general parsers , 1993, PEPM '93.

[20]  Pierre Jouvelot,et al.  Separate polyvariant binding-time analysis , 1993 .

[21]  Neil D. Jones,et al.  Mix: A self-applicable partial evaluator for experiments in compiler generation , 1989, LISP Symb. Comput..

[22]  I. G. BONNER CLAPPISON Editor , 1960, The Electric Power Engineering Handbook - Five Volume Set.

[23]  Flemming Nielson,et al.  Automatic Binding Time Analysis for a Typed lambda-Calculus , 1988, Sci. Comput. Program..

[24]  J. Jørgensen,et al.  Efficient Analyses for Realistic Off-Line Partial Evaluation : Extended Version , 1993 .

[25]  Peter Sestoft,et al.  An experiment in partial evaluation: the generation of a compiler generator , 1985, SIGP.

[26]  P. Steerenberg,et al.  Targeting pathophysiological rhythms: prednisone chronotherapy shows sustained efficacy in rheumatoid arthritis. , 2010, Annals of the rheumatic diseases.

[27]  Charles Consel,et al.  Polyvariant binding-time analysis for applicative languages , 1993, PEPM '93.

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

[29]  Alan Mycroft,et al.  Polymorphic Type Schemes and Recursive Definitions , 1984, Symposium on Programming.