Affiliation:
1. University of Waterloo, Canada
2. Universität Freiburg, Germany
Abstract
We present a framework for offline partial evaluation for call-by-value functional programming languages with an ML-style typing discipline. This includes a binding-time analysis which is (1) polymorphic with respect to binding times; (2) allows the use of polymorphic recursion with respect to binding times; (3) is applicable to a polymorphically typed term; and (4) is proven correct with respect to a novel small-step specialization semantics.The main innovation is to build the analysis on top of the region calculus of Tofte and Talpin [1994], thus leveraging the tools and techniques developed for it. Our approach factorizes the binding-time analysis into region inference and a subsequent constraint analysis. The key insight underlying our framework is to consider binding times as properties of regions.Specialization is specified as a small-step semantics, building on previous work on syntactic-type soundness results for the region calculus. Using similar syntactic proof techniques, we prove soundness of the binding-time analysis with respect to the specializer. In addition, we prove that specialization preserves the call-by-value semantics of the region calculus by showing that the reductions of the specializer are contextual equivalences in the region calculus.
Publisher
Association for Computing Machinery (ACM)
Reference71 articles.
1. A constraint-based region inference algorithm
2. Birkedal L. and Welinder M. 1993. Partial evaluation of Standard ML. Rapport 93/22 DIKU University of Copenhagen.]] Birkedal L. and Welinder M. 1993. Partial evaluation of Standard ML. Rapport 93/22 DIKU University of Copenhagen.]]
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献