Skip to main content Accessibility help
×
Home

Specifying the correctness of binding-time analysis

  • Mitchell Wand (a1)

Abstract

Mogensen has exhibited a very compact partial evaluator for the pure lambda calculus, using binding-time analysis followed by specialization. We give a correctness criterion for this partial evaluator and prove its correctness relative to this specification. We show that the conventional properties of partial evaluators, such as the Futamura projections, are consequences of this specification. By considering both a flow analysis and the transformation it justifies together, this proof suggests a framework for incorporating flow analyses into verified compilers.

Copyright

References

Hide All
Barendregt, Henk. (1991) Self-interpretation in lambda calculus. Journal of functional programming, 1(2), 229234.
Clinger, William. (1984) (Aug.). The scheme 311 compiler: An exercise in denotational semantics. Pages 356364of: Proc. 1984 ACM Symposium on Lisp and Functional Programming.
Consel, Charles. (1990) Binding time analysis for higher order untyped functional languages. Pages 264272of: Proc. 1990 ACM Symposium on Lisp and Functional Programming.
Consel, Charles, & Khoo, Siau Cheng. (1992) (June). On-line & off-line partial evaluation: Semantic specifications and correctness proofs. Tech. rept. YALEU/DCS/RR-912. Yale University Department of Computer Science.
Gomard, Carsten K. (1990) Partial type inference for untyped functional programs. Pages 282287of: Proc. 1990 ACM Symposium on Lisp and Functional Programming.
Gomard, Carsten K. (1992) A self-applicable partial evaluator for the lambda calculus: Correctness and pragmatics. Acm transactions on programming languages and systems,14(2), 147172.
Henglein, Fritz. (1991) Efficient type inference for higher-order binding-time analysis. Pages 448472of: Hughes, J. (ed), Functional programming languages and computer architecture, 5th acm conference. Lecture Notes in Computer Science, vol. 523. Berlin, Heidelberg, New York:Springer-Verlag.
Hunt, Sebastian, & Sands, David. (1991) Binding time analysis: A new perspective. Pages 154165of: Proceedings of the symposium on partial evaluation and semantics-based program manipulation. SIGPLAN Notices 26(9), September, 1991.
Jorring, U., & Scherlis, William L. (1986) Compilers and staging transformations. Pages 8696of: Conf. Rec. 13th ACM Symposium on Principles of Programming Languages.
Launchbury, John. (1989) (Nov.). Projection factorizations in partial evaluation. Ph.D. thesis, University of Glasgow.
Launchbury, John. (1991) A strongly-typed self-applicable partial evaluator. In: Hughes, John (ed), Functional programming languages and computer architecture, vol. 523. Berlin, Heidelberg, and New York: Springer-Verlag.
Mogensen, Torben Æ. (1992a) (June). Efficient self-interpretation in lambda calculus. to appear.
Mogensen, Torben Æ. (1992b) Self-applicable partial evaluation for pure lambda calculus. Pages 116121of: Consel, Charles (ed), Acm sigplan workshop on partial evaluation and semantics-based program manipulation.
Nielson, Flemming, & Nielson, Hanne Riis. (1988) Two-level semantics and code generation. Theoretical computer science, 56, 59133.
Palsberg, Jens. (1993) Correctness of binding time analysis. Journal of functional programming, 11.
Pfenning, Frank, & Elliott, Conal. (1988) (June). Higher-order abstract syntax. Pages 199208of: Proceedings sigplan ‘88 conference on programming language design and implementation.
Wand, Mitchell. (1982) Deriving target code as a representation of continuation semantics. Acm transactions on programming languages and systems, 4(3), 496517.
Wand, Mitchell, & Oliva, Dino P. (1992) Proving the correctness of storage representations. Pages 151160of: Proc. 1992 ACM Symposium on Lisp and Functional Programming.

Related content

Powered by UNSILO

Specifying the correctness of binding-time analysis

  • Mitchell Wand (a1)

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed.

Specifying the correctness of binding-time analysis

  • Mitchell Wand (a1)
Submit a response

Discussions

No Discussions have been published for this article.

×

Reply to: Submit a response


Your details


Conflicting interests

Do you have any conflicting interests? *