How to control unfolding when specializing interpreters
An interpreter can be viewed as performing two tasks: parsing and execution. Interpreters are specialized by partially evaluating the parsing activity while leaving the execution component as residue. We give a procedure for identifying goals that participate in the parsing process and present rules for unfolding these goals. The unfolding rules are independent of the object-program being compiled and can be generated by a one-time inspection of an interpreter. This makes specializing interpreters a practical technique for compiling programs.
KeywordsPartial Evaluation Unfolding Specializing Interpreters
Unable to display preview. Download preview PDF.
- 4).Futamura, Y., “Partial evaluation of computation process—an approach to a compiler-compiler,”Systems, Computers, Controls, 25, pp. 45–50, 1971.Google Scholar
- 5).Jones, N. D., Sestoft, P., and Søndergard, H., “An experiment in partial evaluation: The generation of a compiler generator,”Lecture Notes in Computer Science, 202, pp. 124–140, 1985.Google Scholar
- 6).Komorowski, H. J., “A Specification of an Abstract Prolog Machine and its Application to Partial Evaluation,”Ph. D. thesis, Linköping Studies in Science and Technology, 1981.Google Scholar
- 8).Neumann, G.,Metaprogrammeirung und Prolog, Addison-Wesley, 1988.Google Scholar
- 9).Pereira, F. and Shieber, S., “Prolog and natural-language analysis,”Technical Report, Lecture Notes #10, Center for the Study of Language and Information, 1987.Google Scholar
- 11).Sterling, L. S. and Shapiro, E. Y.,The Art of Prolog, MIT Press, 1986.Google Scholar
- 12).Takeuchi, A. and Furukawa, K., “Partial evaluation of Prolog programs and its application to meta programming,” inInformation Processing 86, North-Holland, pp. 415–420, 1986.Google Scholar