On Perfect Supercompilation

  • Jens Peter Secher
  • Morten Heine Sørensen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1755)

Abstract

We extend positive supercompilation to handle negative as well as positive information. This is done by instrumenting the underlying unfold rules with a small rewrite system that handles constraints on. terms, thereby ensuring perfect information propagation. We illustrate this by transforming a naïvely specialised string matcher into an optimal one. The presented algorithm is guaranteed to terminate by means of generalisation steps.

Keywords

Normal Form Positive Information Constraint System Partial Evaluation Negative Information 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    ACM. Proceeding of the ACM SIGPLAN Syposium on Partial Evaluation and Semantics-Based Program Manipulation, volume 26(9) of ACM SIGPLAN Notices, New York, September 1991. ACM Press.Google Scholar
  2. [2]
    Hubert Comon and Pierre Lescanne. Equational problems and disunification. Journal of Symbolic Computation, 7(3–4):371–425, March–April 1989.MathSciNetCrossRefMATHGoogle Scholar
  3. [3]
    Charles Consel and Olivier Danvy. Partial evaluation of pattern matching in strings. Information Processing Letters, 30(2):79–86, 1989.CrossRefGoogle Scholar
  4. [4]
    O. Danvy, R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996.Google Scholar
  5. [5]
    Y. Futamura and K. Nogi. Generalized partial computation. In D. Bjørner, A.P. Ershov, and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 133–151, Amsterdam, 1988. North-Holland.Google Scholar
  6. [6]
    R. Glück and A.V. Klimov. Occam’s razor in metacomputation: the notion of a perfect process tree. In P. Cousot, M. Falaschi, G. Filè, and G. Rauzy, editors, Workshop on Static Analysis, volume 724 of Lecture Notes in Computer Science, pages 112–123. Springer-Verlag, 1993.Google Scholar
  7. [7]
    R. Glück and M.H. Sørensen. A roadmap to metacomputation by supercompilation. In R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 Danvy et al. [4], pages 137–160.Google Scholar
  8. [8]
    T.J. Hickey and D. Smith. Toward the partial evaluation of CLP languages. In PEPM’91 [1], pages 43–51.Google Scholar
  9. [9]
    N.D. Jones, C.K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.Google Scholar
  10. [10]
    L. Lafave and J. P. Gallagher. Partial evaluation of functional logic programs in rewriting-based languages. Technical Report CSTR-97-001, Department of Computer Science, University of Bristol, March 1997.Google Scholar
  11. [11]
    L. Lafave and J. P. Gallagher. Extending the power of automatic constraint-based partial evaluators. ACM Computing Surveys, 30(3es), September 1998. Article 15.Google Scholar
  12. [12]
    Michael Leuschel and Danny De Schreye. Constrained partial deduction and the preservation of characteristic trees. New Generation Computing, 1997.Google Scholar
  13. [13]
    Michael Leuschel, Bern Martens, and Danny De Schreye. Controlling generalization and polyvariance in partial deduction of normal logic programs. ACM Transactions on Programming Languages and Systems, 20(1):208–258, January 1998.CrossRefGoogle Scholar
  14. [14]
    Greg Nelson and Derek C. Oppen. Fast decision procedures based on congruence closure. Journal of the ACM, 27(2):356–364, April 1980.MATHCrossRefMathSciNetGoogle Scholar
  15. [15]
    J. P. Secher. Perfect supercompilation. Technical Report 99/01, Department of Computer Science, University of Copenhagen, 1999.Google Scholar
  16. [16]
    D. Smith. Partial evaluation of pattern matching in constraint logic programming. In PEPM’91 [1], pages 62–71.Google Scholar
  17. [17]
    M.H.B. Sørensen. Convergence of program transformers in the metric space of trees. In J. Jeuring, editor, Mathematics of Program Construction, volume 1422 of Lecture Notes in Computer Science, pages 315–337. Springer-Verlag, 1998.CrossRefGoogle Scholar
  18. [18]
    M. H. Srensen and R. Glück. Introduction to supercompilation. In DIKU Summer school on Partial Evaluation, Lecture Notes in Computer Science. Springer-Verlag, to appear.Google Scholar
  19. [19]
    A. Takano. Generalized partial computation for a lazy functional language. In PEPM’91 [1], pages 1–11.Google Scholar
  20. [20]
    A. Takano. Generalized partial computation using disunification to solve constraints. In M. Rusinowitch and J.L. Remy, editors, Conditional Term Rewriting Systems. Proceedings, volume 656 of Lecture Notes in Computer Science, pages 424–428. Springer-Verlag, 1993.Google Scholar
  21. [21]
    V.F. Turchin. The concept of a supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, 1986.MATHCrossRefMathSciNetGoogle Scholar
  22. [22]
    V.F. Turchin. Metacomputation: Metasystem transition plus Supercompilation. In R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 Danvy et al. [4], pages 481–510.Google Scholar
  23. [23]
    P.L. Wadler. Deforestation: Transforming programs to eliminate intermediate trees. Theoretical Computer Science, 73:231–248, 1990.MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Jens Peter Secher
    • 1
  • Morten Heine Sørensen
    • 1
  1. 1.Department of Computer ScienceUniversity of Copenhagen (DIKU)Copenhagen ØDenmark

Personalised recommendations