ACM Home Page
Please provide us with feedback. Feedback
Denotational abstract interpretation of logic programs
Full text PdfPdf (2.85 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 16 ,  Issue 3  (May 1994) table of contents
Pages: 607 - 648  
Year of Publication: 1994
ISSN:0164-0925
Authors
Kim Marriott  Monash Univ., Clayton, Victoria, Australia
Harald Søndergaard  The Univ. of Melbourne, Parkville, Victoria, Australia
Neil D. Jones  DIKU, Univ. of Copenhagen, Copenhagen, Denmark
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 31,   Citation Count: 19
Additional Information:

abstract   references   cited by   index terms   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/177492.177650
What is a DOI?

ABSTRACT

Logic-programming languages are based on a principle of separation “logic” and “control.”. This means that they can be given simple model-theoretic semantics without regard to any particular execution mechanism (or proof procedure, viewing execution as theorem proving). Although the separation is desirable from a semantical point of view, it makes sound, efficient implementation of logic-programming languages difficult. The lack of “control information” in programs calls for complex data-flow analysis techniques to guide execution. Since data-flow analysis furthermore finds extensive use in error-finding and transformation tools, there is a need for a simple and powerful theory of data-flow analysis of logic programs. This paper offers such a theory, based on F. Nielson's extension of P. Cousot and R. Cousot's abstract interpretation. We present a denotational definition of the semantics of definite logic programs. This definition is of interest in its own right because of its compactness. Stepwise we develop the definition into a generic data-flow analysis that encompasses a large class of data-flow analyses based on the SLD execution model. We exemplify one instance of the definition by developing a provably correct groundness analysis to predict how variables may be bound to ground terms during execution. We also discuss implementation issues and related work.


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
BRUYNOOGHE, M. 1987. A framework for the abstract interpretation of logic programs. Rep. CW 62, Dept. of Computer Science, Umv. of Leuven, Belgium.
 
5
 
6
BRUYNOOGHE, M., JANSENNS, G., CALLEBAUT, A., AND DEMOEN, g. 1987. Abstract interpretation: Towards the global optimization of Prolog programs. In Proceedtngs of the 4th International Symposzum on Logic Programming (San Francisco, Calif.). IEEE, New York, 192-204
7
 
8
 
9
CORTESI, A., FILL, G., AND WINSBOROUGH, W. 1991. Prop revisited: Propositmnal formula as abstract domain for groundness analysis. In Proceedillgs of the 6th Annual IEEE Symposium on Logic in Computer Scwnce (Amsterdam, The Netherlands). IEEE, New York, 322-327.
 
10
11
12
 
13
 
14
DART, P. 1988. Dependency analysis and query interfaces for deductive databases. Ph.D. thesis, Dept. of Computer Science, The Univ. of Melbourne, Australia.
15
 
16
 
17
 
18
DEBRAY, S. Z., AND RAMAKRISHNAN, R. 1991. Canonical computatmn of logic programs. Draft.
 
19
DONZEAU-GOUGE, V. 1978. Utihsation de la s~mantique d6notatmnelle pour l'~tude d'interprtations non-standard. Res. Rep. 273, IRIA, Le Chesnay, France.
 
20
ERRINGTON, D. L., AND S0NDERGAARD, H. 1992. Absinth: A generic dataflow analyser for logic programs. Tech. Rep. 92/19, Dept. of Computer Science, Univ. of Melbourne, Australia.
 
21
FALASCHI, M., GABBRIELLI, M., MARRIOTT, K., AND PALAMIDESSI, C. 1993. Compositmnal analysis for concurrent constraint programming. In Proceedings of the IEEE Symposium on Logzc ~n Computer Science (Montreal, Canada). IEEE, New York, 210-221.
 
22
 
23
 
24
 
25
JENSEN, J. 1965. Generation of machine code in Algol compilers. BIT 5, 235-245.
 
26
 
27
JONES, N. D., AND MUCHNICK, S. S. 1981. Flow analysis and optimization of Lisp-hke structures. In Program Flow Analyszs, S. S. Muchnick and N. D. Jones, Eds. Prentice-Hall, Englewood Cliffs, N J., 102-131.
28
 
29
JONES, N. D., AND MYCROFT, A. 1984. A stepwise development of operational and denotational semantics for Prolog. In Proceedings of the 1984 International Symposium on Logic Programm~ng. (Atlantic City, N.J.). IEEE, New York, 289-298.
 
30
JONES N. D., AND S~NDERGAARD, H. 1987. A semantics-based framework for the abstract interpretation of Prolog. In Abstract Interpretation of Declarative Languages, S. Abramsky and C. Hankin, Eds. Ellis Horwood, Chichester, U.K., 123-142.
 
31
 
32
 
33
KLEENE, S. C. 1952. Introductton to Metamathematics. North-Holland, Amsterdam, The Netherlands. (Originally published by Van Nostrand, New York.)
34
 
35
LE CHARLIER, B., MUSUMBU, K., AND VAN HENTENRYCK, P. 1990. A generic abstract interpretation algorithm and its complexity analysis. In Logic Programming: Proceedings of the 8th International Conference, K Furukawa, Ed. MIT Press, Cambridge, Mass., 64-78.
 
36
 
37
MANNILA, H., AND UKKONEN, E. 1987. Flow analysis of Prolog programs. In Proceedtngs of the 4th Sympostum on Logzc Programming. (San Francisco, Calif.). IEEE, New York, 205-214.
 
38
39
 
40
 
41
 
42
MARRIOTT, g., AND SONDERGAARD, H. 1989a. Notes for a tutorial on abstract interpretation of logic programs. Presented to North American Conference Logic Programming (Cleveland, Ohio).
 
43
MARRIOTT, K.~ AND SONDERGAARD, H. 1989b. Semantics-based dataflow analysis of logic programs. In Information Processing 89, G. X. Ritter, Ed. North-Holland, Amsterdam, The Netherlands, 601-606.
44
 
45
 
46
MELLISH, C.S. 1987. Abstract interpretation of Prolog programs. In Abstract Interpretation of Declaratwe Languages, S. Abramsky and C. Hankin, Eds. Ellis Horwood, Chichester, U.K., 181-198.
 
47
MELLISH, C.S. 1981. The automatic generation of mode declarations for Protog programs. DAI Res. Pap. 163, Dept. of Artificial Intelligence, Univ. of Edinburgh, Scotland.
 
48
MYCROFT, A. 1981. Abstract Interpretation and Optimising Transformations for Applicative Programs. Ph.D. thesis, Dept. of Computer Science, Univ. of Edinburgh, Scotland.
 
49
NAUR, P. 1963. The design of the Gier Algol compiler, part II. BIT 3, 145-166.
 
50
 
51
 
52
NIELSON, F. 1982. A denotational framework for data flow analysis. Acta Inf. 18, 265-287.
 
53
NILSSON, U. 1991. Abstract interpretation: A kind of magic. In Programmtng Language Implementation and Logic Programming, J. Maluszy~ski and M Wirsing, Eds. Lecture Notes in Computer Science, vol. 528. Springer-Verlag, New York, 299-309.
 
54
RElOLDS, J.C. 1969. Automatic computation of data set definitions. In Information Processing 68, A Morrelt, Ed. North-Holland, Amsterdam, The Netherlands, 456-461
 
55
56
 
57
S~NDERGAARD, H. 1989. Semantics-based analysis and transformation of logic programs. Ph.D. thesis, Dept. of Computer Science, Univ. of Copenhagen, Denmark.
 
58
 
59
 
60
 
61

CITED BY  20

Collaborative Colleagues:
Kim Marriott: colleagues
Harald Søndergaard: colleagues
Neil D. Jones: colleagues