Skip to main content Accessibility help
×
Home
Hostname: page-component-5d6d958fb5-lm9t2 Total loading time: 0.247 Render date: 2022-11-28T19:11:02.579Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "useRatesEcommerce": false, "displayNetworkTab": true, "displayNetworkMapGraph": false, "useSa": true } hasContentIssue true

Specifying the correctness of binding-time analysis

Published online by Cambridge University Press:  07 November 2008

Mitchell Wand
Affiliation:
College of Computer Science, Northeastern University, 360 Huntington Avenue, 161CN, Boston, MA 02115, USA (e-mail: wand@ccs.neu.edu)
Rights & Permissions[Opens in a new window]

Abstract

HTML view is not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

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.

Type
Articles
Copyright
Copyright © Cambridge University Press 1993

References

Barendregt, Henk. (1991) Self-interpretation in lambda calculus. Journal of functional programming, 1(2), 229234.Google Scholar
Clinger, William. (1984) (Aug.). The scheme 311 compiler: An exercise in denotational semantics. Pages 356364of: Proc. 1984 ACM Symposium on Lisp and Functional Programming.Google Scholar
Consel, Charles. (1990) Binding time analysis for higher order untyped functional languages. Pages 264272of: Proc. 1990 ACM Symposium on Lisp and Functional Programming.Google Scholar
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.Google Scholar
Gomard, Carsten K. (1990) Partial type inference for untyped functional programs. Pages 282287of: Proc. 1990 ACM Symposium on Lisp and Functional Programming.Google Scholar
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.CrossRefGoogle Scholar
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.Google Scholar
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.Google Scholar
Jorring, U., & Scherlis, William L. (1986) Compilers and staging transformations. Pages 8696of: Conf. Rec. 13th ACM Symposium on Principles of Programming Languages.Google Scholar
Launchbury, John. (1989) (Nov.). Projection factorizations in partial evaluation. Ph.D. thesis, University of Glasgow.Google Scholar
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.CrossRefGoogle Scholar
Mogensen, Torben Æ. (1992a) (June). Efficient self-interpretation in lambda calculus. to appear.Google Scholar
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.Google Scholar
Nielson, Flemming, & Nielson, Hanne Riis. (1988) Two-level semantics and code generation. Theoretical computer science, 56, 59133.CrossRefGoogle Scholar
Palsberg, Jens. (1993) Correctness of binding time analysis. Journal of functional programming, 11.Google Scholar
Pfenning, Frank, & Elliott, Conal. (1988) (June). Higher-order abstract syntax. Pages 199208of: Proceedings sigplan ‘88 conference on programming language design and implementation.Google Scholar
Wand, Mitchell. (1982) Deriving target code as a representation of continuation semantics. Acm transactions on programming languages and systems, 4(3), 496517.CrossRefGoogle Scholar
Wand, Mitchell, & Oliva, Dino P. (1992) Proving the correctness of storage representations. Pages 151160of: Proc. 1992 ACM Symposium on Lisp and Functional Programming.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.
You have Access
20
Cited by

Save article to Kindle

To save this article to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Specifying the correctness of binding-time analysis
Available formats
×

Save article to Dropbox

To save this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Dropbox account. Find out more about saving content to Dropbox.

Specifying the correctness of binding-time analysis
Available formats
×

Save article to Google Drive

To save this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Google Drive account. Find out more about saving content to Google Drive.

Specifying the correctness of binding-time analysis
Available formats
×
×

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *