New Generation Computing

, Volume 8, Issue 1, pp 61–70 | Cite as

How to control unfolding when specializing interpreters

  • Arun Lakhotia
  • Leon Sterling
Regular Papers


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.


Partial Evaluation Unfolding Specializing Interpreters 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1).
    Ershov, A. P., “On the partial computation principle,”Information Processing Letters, Vol. 6, No. 2, pp. 38–41, April, 1977.CrossRefGoogle Scholar
  2. 2).
    Fujita, H. and Furukawa, K., “A self-applicable partial evaluator and its use in incremental compilation,”New Generation Computing, Vol. 6, Nos. 2-3, pp. 91–118, 1988.CrossRefGoogle Scholar
  3. 3).
    Fuller, D. and Abramsky, S., “Mixed computation of Prolog programs,”New Generation Computing, Vol. 6, Nos. 2-3, pp. 119–142, 1988.CrossRefGoogle Scholar
  4. 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. 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. 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
  7. 7).
    Levi, G. and Sardu, G., “Partial evaluation of metaprograms in a “multiple worlds” logic language,”New Generation Computing, Vol. 6, Nos. 2-3, pp. 227–248, 1988.CrossRefGoogle Scholar
  8. 8).
    Neumann, G.,Metaprogrammeirung und Prolog, Addison-Wesley, 1988.Google Scholar
  9. 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
  10. 10).
    Sterling, L. S. and Beer, R. D., “Meta-Interpreters for Expert System Construction,”Journal of Logic Programming, Vol. 6, Nos. 1-2, pp. 163–178, 1989.CrossRefGoogle Scholar
  11. 11).
    Sterling, L. S. and Shapiro, E. Y.,The Art of Prolog, MIT Press, 1986.Google Scholar
  12. 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

Copyright information

© Ohmsha, Ltd. and Springer 1990

Authors and Affiliations

  • Arun Lakhotia
    • 1
  • Leon Sterling
    • 1
  1. 1.Department of Computer Engineering and ScienceCase Western Reserve UniversityClevelandUSA

Personalised recommendations