|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kim Marriott , María José García de la Banda , Manuel Hermenegildo, Analyzing logic programs with dynamic scheduling, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.240-253, January 16-19, 1994, Portland, Oregon, United States
|
|
|
Torben Mogensen , David Schmidt , I. Hal Sudborough, Preface, The essence of computation: complexity, analysis, transformation, Springer-Verlag New York, Inc., New York, NY, 2002
|
|
|
|
|
|
|
|
|
Manuel V. Hermenegildo , Elvira Albert , Pedro López-García , Germán Puebla, Abstraction carrying code and resource-awareness, Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming, p.1-11, July 11-13, 2005, Lisbon, Portugal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|