|
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).
|
|