ACM Home Page
Please provide us with feedback. Feedback
Controlling generalization and polyvariance in partial deduction of normal logic programs
Full text PdfPdf (912 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 20 ,  Issue 1  (January 1998) table of contents
Pages: 208 - 258  
Year of Publication: 1998
ISSN:0164-0925
Authors
Michael Leuschel  Katholieke Univ. Leuven, Heverlee, Belgium
Bern Martens  Katholieke Univ. Leuven, Heverlee, Belgium
Danny De Schreye  Katholieke Univ. Leuven, Heverlee, Belgium
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 38,   Citation Count: 18
Additional Information:

abstract   references   cited by   additional resources   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/271510.271525
What is a DOI?

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
2
 
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
 
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
 
94

CITED BY  19

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...

Collaborative Colleagues:
Michael Leuschel: colleagues
Bern Martens: colleagues
Danny De Schreye: colleagues