ACM Home Page
Please provide us with feedback. Feedback
A self-applicable partial evaluator for the lambda calculus: correctness and pragmatics
Full text PdfPdf (1.72 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 14 ,  Issue 2  (April 1992) table of contents
Pages: 147 - 172  
Year of Publication: 1992
ISSN:0164-0925
Author
Carsten K. Gomard  University of Copenhagen
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 50,   Citation Count: 9
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/128861.128864
What is a DOI?

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 &lgr;-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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
BECKMAN, L., et al. A partial evaluator, and its use as a programming tool. Artif. Intell. 7, 4 (1976), 319-357.
 
3
 
4
 
5
BONDORP, A., AND DANVY, O. Automatic autoprojection of recursive equations with global variables and abstract data types. Tech. Rep. 90/4, DIKU, Univ. of Copenhagen, 1990. Te appear in Science of Computer Programming.
 
6
BONDORF, A., JONES, N. D., MOGENSEN, T., AND SESTOFT, P. Binding time analysis and the taming of self-application. Draft, DIKU, Univ. of Copenhagen, Aug. 1988.
 
7
ONSEL, C. Analyse de programmes, evaluation partielle et g~n~ration de compilateurs. Ph.D. dissertation, Univ. de Paris 6, Paris, June 1989, 109 pp. (in French).
 
8
 
9
 
10
ERs~ov, A. P. On the essence of compilation. In Formal Description of Programming Concepts, E. J. Neuhold, Ed., North-Holland, Amsterdam, 1978, 391-420.
 
11
ERSHOV, A. P., AND ITKIN, V.E. Correctness of mixed computation in Algol-like programs. In Mathematical Foundations of Computer Science (Tatransk~ Lomnica, Czechoslovakia), J. Gruska, Ed., Lecture Notes in Computer Science, 53, Springer-Verlag, New York, pp. 59-77.
 
12
 
13
FUTAMURA, Y. Partial evaluation of computation process--An approach te a compiler- ~compiler. Syst. Comput. Controls 2, 5 (1971), 45-50.
 
14
GOMARD, C. K., AND JONES, N.D. Compiler generation by partial evaluation: A case study. J. Struct. Program. 12, 3 (July 1991), te appear. Also DIKU Rep. 88/24 and 90/16.
15
 
16
GOMARD, C. K., AND JONES, N. D. A partial evaluator for the untyped lambda-calculus. J. Func. Program. 1, I (Jan. 1991), 21-69.
 
17
GuzowsKI, M.A. Towards developing a refiexive partial evaluator for an interesting subset of Lisp. Master's Thesis, Dept. of Computer Eng. and Science, Case Western Reserve Univ., Cleveland, Ohio, Jan. 1988.
 
18
 
19
JONES, N.D. Automatic program specialization: a re-examination from basic principles. In Partial Evuluation and Mixed Computation, D. Bj~/rner, A P Ershov, and N D. Jones, Eds., North-Holland, Amsterdam, 1988, pp. 225-282.
 
20
JO~~ES, N. D, GOMARD, C. K., BONDORF, A., DANVY, O., AND MOGENSEN, T. E. A selfapplicable partial evaluator for the lambda calculus. In 1990 International Conference on Computer Languages (New Orteans, LA, March 1990), IEEE Computer Society, New York, 1990, pp. 49-58.
 
21
 
22
JON~S, N. D., SESTOFT, P., AND SfINDERCAARD, H. Mix: a sel~applicable partial evaluator for experiments in compiler generation. Lisp Symbol~c Comput. 2, i (1989), 9-50.
23
 
24
LOMSARDI, L. A. Incremental computation. In Advances Comput. 8, F. L. Alt and M Rubinoff, Eds., 1967, 247-333.
 
25
MessEs, P. SIS--Semant~cs Implem?tation System, Reference Manual and User Guide. DAIMI Rep. MD-30, DAIMI, Univ. of Arhus, Denmark, 1979.
 
26
NmLSON, F. A formal type system for comparing partial evaluators. In Partial Evaluatwn and Mixed Computatwn, D. Bj9/rner, A. P. Ershov, and N. D. Jones, Eds , North-Holland, Amsterdam, 1988, 349-384.
 
27
NmLSON, F., AEND NmLSO~, H. R. The TML-approach te compiler-compilers. Tech. Rep. 1988-47, Dept. of Computer Science, Technical Univ. of Denmark, 1988.
28
29
 
30
JONES, S. L.P. The Implementation of Functwnal Programming Languages. Prentice-Hall, Englewood Cliffs, N.J., 1987.
31
 
32
ROMANENKO, S.A. A compiler generator produced by a self-applicable specializer can bave a surprisingly natural and understandable structure. In Partial Evaluatwn and Mixed Computation, D. Bj~/rner, A. P. Ershov, and N. D. Jones, Eds., North-Holland, Amsterdam, 1988, 445-463.
33
 
34
35
 
36
37
38
 
39
WEIS, P. Le Systeme SAM: Metacompilation tres efficace a l'aide d'operateur semantiques. Ph.D. dissertation, l'Univ. Paris VII, 1987 (in French).

CITED BY  9