Affiliation:
1. University of Copenhagen
Abstract
We describe theoretical and a few practical aspects of an implemented self-applicable partial evaluator for the untyped lambda calculus with constants, conditionals, and a fixed point operator.
The purpose of this paper is first to announce the existence of (and to describe) a partial evaluator that is both higher-order and self-applicable; second to describe a surprisingly simple solution to the central problem of binding time analysis, and third to prove that the partial evaluator yields correct answers.
While λ-mix (the name of our system) seems to have been the first higher-order self-applicable partial evaluator to run on a computer, it was developed mainly for research purposes. Two recently developed systems are much more powerful for practical use, but also much more complex: Similix[3,5] and Schism[7].
Our partial evaluator is surprisingly simple, completely automatic, and has been implemented in a side effect-free subset of Scheme. It has been used to compile, generate compilers and generate a compiler generator.
Publisher
Association for Computing Machinery (ACM)
Cited by
23 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The Genesis of Mix: Early Days of Self-Applicable Partial Evaluation (Invited Contribution);Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation;2024-01-11
2. Toward introducing binding-time analysis to MetaOCaml;Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation;2016-01-11
3. JuliusC: A Practical Approach for the Analysis of Divide-and-Conquer Algorithms;Lecture Notes in Computer Science;2005
4. Normalization and Partial Evaluation;Lecture Notes in Computer Science;2002
5. The Correctness of Type Specialisation;Programming Languages and Systems;2000