Correctness of binding-time analysis
- 1 July 1993
- journal article
- research article
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 3 (3) , 347-363
- https://doi.org/10.1017/s0956796800000770
Abstract
A binding-time analysis is correct if it always produces consistent binding-time information. Consistency prevents partial evaluators from ‘going wrong’. A sufficient and decidable condition for consistency, called well-annotatedness, was first presented by Gomard and Jones. In this paper we prove that a weaker condition implies consistency. Our condition is decidable, subsumes the one of Gomard and Jones, and was first studied by Schwartzbach and the present author. Our result implies the correctness of the binding-time analysis of Mogensen, and it indicates the correctness of the core of the binding-time analyses of Bondorf and Consel. We also prove that all partial evaluators will on termination have eliminated all ‘eliminable’-marked parts of an input which satisfies our condition. This generalizes a result of Gomard. Our development is for the pure λ-calculus with explicit binding-time annotations.Keywords
This publication has 10 references indexed in Scilit:
- Specifying the correctness of binding-time analysisJournal of Functional Programming, 1993
- Efficient analyses for realistic off-line partial evaluationJournal of Functional Programming, 1993
- Binding Time Analysis: Abstract Interpretation vs. Type InferenceDAIMI Report Series, 1992
- Automatic autoprojection of higher order recursive equationsScience of Computer Programming, 1991
- A partial evaluator for the untyped lambda-calculusJournal of Functional Programming, 1991
- Binding time analysis for high order untyped functional languagesPublished by Association for Computing Machinery (ACM) ,1990
- Partial type inference for untyped functional programsPublished by Association for Computing Machinery (ACM) ,1990
- Replacing function parameters by global variablesPublished by Association for Computing Machinery (ACM) ,1989
- Automatic binding time analysis for a typed λ-calculusScience of Computer Programming, 1988
- Flow analysis of lambda expressionsLecture Notes in Computer Science, 1981