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 1994. 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. © 1994, ACM. All rights reserved.
Author supplied keywords
Cite
CITATION STYLE
Marriott, K., Søndergaard, H., & Jones, N. D. (1994). Denotational Abstract Interpretation of Logic Programs. ACM Transactions on Programming Languages and Systems (TOPLAS), 16(3), 607–648. https://doi.org/10.1145/177492.177650
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.