|
ABSTRACT
Given a program and some input data, partial deduction computes a
specialized program handling any remaining input more efficiently.
However, controlling the process well is a rather difficult problem.
In this article, we elaborate global control for partial deduction:
for which atoms, among possibly infinitely many, should specialized
relations be produced, meanwhile guaranteeing correctness as well as
termination? Our work is based on two ingredients. First, we use the
concept of a characteristic tree, encapsulating specialization
behavior rather than syntactic structure, to guide generalization and
polyvariance, and we show how this can be done in a correct and
elegant way. Second, we structure combinations of atoms and
associated characteristic trees in global trees registering “causal” relationships among such pairs. This allows us to spot looming nontermination and perform proper generalization in order to avert the danger, without having to impose a depth bound on characteristic trees. The practical relevance and benefits of the work are
illustrated through extensive experiments. Finally, a similar
approach may improve upon current (on-line) control strategies for
program transformation in general such as (positive) supercompilation
of functional programs. It also seems valuable in the context of
abstract interpretation to handle infinite domains of infinite
height with more precision.
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.
| |
1
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
 |
2
|
M. Alpuente , M. Falaschi , P. Julián , G. Vidal, Specialization of lazy functional logic programs, Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, p.151-162, June 12-13, 1997, Amsterdam, The Netherlands
|
| |
3
|
|
| |
4
|
BENKERIMI, I~. AND HILL, P. M. 1993. Supporting transformations for the partial evaluation of logic programs. J. Logic Comput. 3, 5 (Oct.), 469-486.
|
| |
5
|
|
| |
6
|
BOL, R. 1993. Loop checking in partial deduction. J. Logic Progam. 16, 1-2, 25-46.
|
| |
7
|
|
 |
8
|
|
| |
9
|
|
| |
10
|
|
| |
11
|
BRUYNOOGHE, iV{., DE SCHREYE, D., AND MARTENS, B. 1992. A general criterion for avoiding infinite unfolding during partial deduction. New Gen. Comput. 11, 1, 47-79.
|
| |
12
|
|
 |
13
|
|
| |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
DE SCHREYE, D., LEUSCHEL, ~/{., AND MARTENS, B. 1995. Tutorial on program specialisation (abstract). In Proceedings of ILPS'95, the International Logic Programming Symposium, J. W. Lloyd, Ed. MIT Press, Cambridge, Mass., 615-616.
|
| |
18
|
DE WAAL, D. t. 1994. Analysis and transformation of proof procedures. Ph.D. thesis, Dept. of Computer Science, Univ. of Bristol, Bristol, U.K.
|
| |
19
|
DE WAAL, D. t. AND GALLAGHER, J. 1991. Specialisation of a unification algorithm. In Logic Program Synthesis and Transformation. Proceedings of LOPSTR'91, T. Clement and K.-K. Lau, Eds. Workshops in Computing. Springer-Verlag, Berlin, 205-220.
|
| |
20
|
|
 |
21
|
|
 |
22
|
|
| |
23
|
DEBRAY, S., LOPEZ GARCfA, P., HERMENEGILDO, iV{., AND LIN, N.-W. 1994. Estimating the computational cost of logic programs. In Proceedings of SAS'9Z, B. Le Charlier, Ed. Lecture Notes in Computer Science, vol. 864. Springer-Verlag, Berlin, 255-265.
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
| |
27
|
GALLAGHER, J. 1991. A system for specialising logic programs. Tech. Rep. TR-91-32, Univ. of Bristol, Bristol, U.K.
|
 |
28
|
|
| |
29
|
GALLAGHER, J. AND BRUYNOOGHE, M. 1990. Some low-level transformations for logic programs. In Proceedings of the META '90 Workshop on Meta Programming in Logic, M. Bruynooghe, Ed. K.U. Leuven, Belgium, 229-244.
|
| |
30
|
GALLAGHER, J. AND BRUYNOOGHE, M. 1991. The derivation of an algorithm for program specialisation. New Gen. Comput. 9, 3-4, 305-333.
|
| |
31
|
GALLAGHER, J. AND DE WAAL, D. t. 1992. Deletion of redundant unary type predicates from logic programs. In Logic Program Synthesis and Transformation. Proceedings of LOPSTR'92, K.-K. Lau and T. Clement, Eds. Workshops in Computing. Springer-Verlag, Berlin, 151-167.
|
| |
32
|
|
| |
33
|
|
| |
34
|
|
| |
35
|
Robert Glück , Jesper Jørgensen , Bern Martens , Morten Heine Sørensen, Controlling Conjunctive Partial Deduction, Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs, p.152-166, September 24-27, 1996
|
| |
36
|
GURR, C. A. 1994. A self-applicable partial evaluator for the logic programming language GSdel. Ph.D. thesis, Dept. of Computer Science, Univ. of Bristol, Bristol, U.K.
|
| |
37
|
GUSTEDT, J. 1992. Algorithmic aspects of ordered structures. Ph.D. thesis, Technische UniversitS~t Berlin, Berlin, Germany.
|
| |
38
|
HEINTZE, N. 1992. Practical aspects of set based analysis. In Proceedings of the Joint International Conference and Symposium on Logic Programming. MIT Press, Cambridge, Mass., 765-779.
|
| |
39
|
HIGMAN, G. 1952. Ordering by divisibility in abstract algebras. Proc. London Math. Soc. 2, 326-336.
|
| |
40
|
HILL, P. AND GALLAGHER, J. 1994. Meta-programming in logic programming. Tech. Rep. 94.22, School of Computer Studies, Univ. of Leeds. To be published in Handbook of Logic in Artificial Intelligence and Logic Programming, Vol. 5. Oxford Science Publications, Oxford University Press.
|
| |
41
|
|
| |
42
|
HORVJtTH, T. 1993. Experiments in partial deduction. M.S. thesis, Departement Computerwetenschappen, K.U. Leuven, Belgium.
|
| |
43
|
|
| |
44
|
|
| |
45
|
|
| |
46
|
|
| |
47
|
KNUTH, D. E., MORRIS, J. H., AND PRATT, V. R. 1977. Fast pattern matching in strings. SIAM J. Comput. 6, 2, 323-350.
|
| |
48
|
|
| |
49
|
KRUSKAL, J. B. 1960. Well-quasi ordering, the tree theorem, and Vazsonyi's conjecture. Trans. Am. Math. Soc. 95, 210-225.
|
| |
50
|
|
| |
51
|
LAM, J. AND KUSALIK, t. 1990. A comparative analysis of partial deductors for pure Prolog. Tech. Rep. Dept. of Computational Science, Univ. of Saskatchewan, Canada. Revised April 1991.
|
| |
52
|
|
| |
53
|
|
| |
54
|
|
| |
55
|
LEUSCHEL, M. 1996. The ECCE partial deduction system and the DPPD library of benchmarks. Obtainable via http://www.cs.kuleuven.ac.be/-lpai.
|
| |
56
|
LEUSCHEL, M. 1997a. Advanced techniques for logic program speciMisation. Ph.D. thesis, K.U. Leuven. Accessible via http://www.cs.kuleuven.ac.be/-michael.
|
| |
57
|
LEUSCHEL, M. 1997b. Extending homeomorphic embedding in the context of logic programming. In Proceedings of the 12th Workshop on Logic Programming (WLP'97), F.Bry, B. Freitag and D. Seipel, Eds. 92-103. Extended version as Tech. Rep. CW 252, K.U. Leuven, Belgium..
|
 |
58
|
|
| |
59
|
LEUSCHEL, M. AND DE SCHREYE, D. 1996a. Creating speciMised integrity checks through partial evaluation of meta-interpreters. Tech. Rep. CW 237, K.U. Leuven, Belgium. To appear in J. Logic Progam.
|
| |
60
|
|
| |
61
|
|
| |
62
|
|
| |
63
|
|
| |
64
|
LEUSCHEL, M., DE SCHREYE, D., AND DE WAAL, A. 1996. A conceptual embedding of folding into partial deduction: Towards a maximal integration. In Proceedings of the Joint International Conference and Symposium on Logic Programming JICSLP'96, M. Maher, Ed. MIT Press, Cambridge, Mass., 319-332. Extended version as Tech. Rep. CW 225, K.U. Leuven.
|
| |
65
|
|
| |
66
|
|
| |
67
|
MARLET, R. 1994. Vers une formalisation de l'tS~valuation partielle. Ph.D. thesis, Universit6 de Nice-Sophia Antipolis.
|
| |
68
|
MARTENS, B. 1994. On the semantics of meta-programming and the control of partial deduction in logic programming. Ph.D. thesis, K.U. Leuven.
|
| |
69
|
MARTENS, B. AND DE SCHREYE, D. 1996. Automatic finite unfolding using well-founded measures. J. Logic Progam. 28, 2 (August), 89-146.
|
| |
70
|
|
| |
71
|
|
| |
72
|
MEULEMANS, D. 1995. Parti~le deductie: Een substanti~le vergelijkende studie. M.S. thesis, Departement Computerwetenschappen, K.U. Leuven, Belgium.
|
| |
73
|
MOGENSEN, T. AND BONDORF, A. 1992. Logimix: A self-applicable partial evaluator for Prolog. In Logic Program Synthesis and Transformation. Proceedings of LOPSTR'92, K.-K. Lau and T. Clement, Eds. Workshops in Computing. Springer-Verlag, Berlin, 214-227.
|
| |
74
|
PETTOROSSI, A. AND PROIETTI, M. 1994. Transformation of logic programs: Foundations and techniques. J. Logic Progam. 19-20, 261-320.
|
| |
75
|
|
| |
76
|
PRESTWICH, S. 1992a. The PADDY partial deduction system. Tech. Rep. ECRC-92-6, ECRC, Munich, Germany.
|
| |
77
|
PRESTWICH, S. 1992b. An unfold rule for full Prolog. In Logic Program Synthesis and Transformation. Proceedings of LOPSTR'92, K.-K. Lau and T. Clement, Eds. Workshops in Computing. Springer-Verlag, Berlin, 199-213.
|
 |
78
|
|
 |
79
|
|
| |
80
|
|
 |
81
|
|
| |
82
|
SAHLIN, D. 1991. An automatic partial evaluator for full Prolog. Ph.D. thesis, Swedish Institute of Computer Science.
|
| |
83
|
|
 |
84
|
|
| |
85
|
|
| |
86
|
SORENSEN, M. H. AND GLUCK, R. 1995. An algorithm of generalization in positive supercompilation. In Proceedings of ILPS'95, the International Logic Programming Symposium, J. W. Lloyd, Ed. MIT Press, Cambridge, Mass., 465-479.
|
| |
87
|
|
| |
88
|
|
 |
89
|
|
| |
90
|
TURCHIN, V. F. 1988. The algorithm of generalization in the supercompiler. In Partial Evaluation and Mixed Computation, D. BjCrner, A. P. Ershov, and N. D. Jones, Eds. North-Holland, 531- 549.
|
| |
91
|
|
| |
92
|
|
| |
93
|
Daniel Weise , Roland Conybeare , Erik Ruf , Scott Seligman, Automatic online partial evaluation, Proceedings of the 5th ACM conference on Functional programming languages and computer architecture, p.165-191, June 1991, Cambridge, Massachusetts, United States
|
| |
94
|
|
CITED BY 19
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Michael Leuschel , Dan Elphick , Mauricio Varea , Stephen-John Craig , Marc Fontaine, The Ecce and Logen partial evaluators and their web interfaces, Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, January 09-10, 2006, Charleston, South Carolina
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADDITIONAL RESOURCES
Appendices A-G do not appear in the print version of this
article. They are contained in the online version of this article
and are also available in a separate online document.
REVIEW
"Nicoletta Cocco : Reviewer"
Partial deduction is an optimization technique for logic programs:
given a program and part of the input, it produces a specialized version
of the program. This paper proposes a method to control partial
deduction for normal programs (logic pr
more...
|