A SELF-APPLICABLE PARTIAL EVALUATOR FOR THE LAMBDA-CALCULUS - CORRECTNESS AND PRAGMATICS

被引:11
|
作者
GOMARD, CK
机构
[1] DIKU, Department of Computer Science, University of Copenhagen, 2100 Copenhagen Ø
关键词
COMPILER GENERATION; LAMBDA-CALCULUS; PARTIAL EVALUATION; SELF-APPLICATION;
D O I
10.1145/128861.128864
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 lambda-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.
引用
收藏
页码:147 / 172
页数:26
相关论文
共 14 条