PSI 1999: Perspectives of System Informatics pp 113-127 | Cite as
On Perfect Supercompilation
Conference paper
First Online:
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.
References
- [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]Hubert Comon and Pierre Lescanne. Equational problems and disunification. Journal of Symbolic Computation, 7(3–4):371–425, March–April 1989.MathSciNetCrossRefMATHGoogle Scholar
- [3]Charles Consel and Olivier Danvy. Partial evaluation of pattern matching in strings. Information Processing Letters, 30(2):79–86, 1989.CrossRefGoogle Scholar
- [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]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]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]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]T.J. Hickey and D. Smith. Toward the partial evaluation of CLP languages. In PEPM’91 [1], pages 43–51.Google Scholar
- [9]N.D. Jones, C.K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.Google Scholar
- [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]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]Michael Leuschel and Danny De Schreye. Constrained partial deduction and the preservation of characteristic trees. New Generation Computing, 1997.Google Scholar
- [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]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]J. P. Secher. Perfect supercompilation. Technical Report 99/01, Department of Computer Science, University of Copenhagen, 1999.Google Scholar
- [16]D. Smith. Partial evaluation of pattern matching in constraint logic programming. In PEPM’91 [1], pages 62–71.Google Scholar
- [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]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]A. Takano. Generalized partial computation for a lazy functional language. In PEPM’91 [1], pages 1–11.Google Scholar
- [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]V.F. Turchin. The concept of a supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, 1986.MATHCrossRefMathSciNetGoogle Scholar
- [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]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