|
ABSTRACT
In general, a partial evaluator needs to keep track of the tasks that have already been completed or initiated, so that it can recognize when to stop unfolding. In the MIX-style polyvariant specialization algorithm, this is accomplished by a global log. This is a very general technique, so it is not surprising that the algorithm is not particularly efficient. In many special cases a simpler technique would suffice.
In this paper, we identify some classes of such special cases by considering the purpose of the global log. We outline how a partial evaluator can take advantage of these special cases and we propose analyses to detect them automatically. We discuss examples to illustrate the effect on specialization and to demonstrate that we can even obtain better residual programs.
The work presented here is still in its early stages, and we do not have a full system incorporating the proposed improvements.
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.
| |
And92
|
L.O. Andersen. C program specialization. Technical Report 92/14, DIKU, University of Copenhagen, Denmark, May 1992.
|
| |
BD91
|
|
| |
Bon91a
|
|
| |
Bon91b
|
A. Bondorf. Similix manual, system version 4.0. DIKU, University of Copenhagen, Denmark. September, 1991.
|
 |
Bon92
|
|
| |
Bon93
|
A. Bondorf. Similix manual, system version 5.0. DIKU, University of Copenhagen, Denmark, April 1993.
|
| |
CD91
|
|
 |
CR91
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams, IV , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand , William Clinger , Jonathan Rees, Revised report on the algorithmic language scheme, ACM SIGPLAN Lisp Pointers, v.IV n.3, p.1-55, July, 1991
[doi> 10.1145/382130.382133]
|
| |
Got74
|
E. Goto. Monocopy and associative algorithms in an extended Lisp. Technical report, University of Tokyo, Japan, May 1974.
|
| |
Hen91
|
|
| |
Hol91
|
|
| |
JGS93
|
|
 |
JM86
|
|
| |
JSS89
|
N.D. Jones, P. Sestoft, and H. Sendergaard. Mix: A self-applicable partial evaluator for experiments in compiler generation. Lisp and Symbolic Computation, 2(1):9-50, 1989.
|
| |
Plo75
|
G.D. Plotkin. CaJl-by-name, call-by-value and the )~-calculus. Theoretical Computer Science, 1:125- 159, 1975.
|
 |
RW91
|
|
 |
Sch85
|
|
| |
Sch86
|
|
| |
Ses86
|
|
 |
Ses89
|
|
| |
Ste78
|
|
|