Results 1  10
of
37
Static Inference of Modes and Data Dependencies in Logic Programs
 ACM Transactions on Programming Languages and Systems
, 1989
"... Abstract: Mode and data dependency analyses find many applications in the generation of efficient executable code for logic programs. For example, mode information can be used to generate specialized unification instructions where permissible; to detect determinacy and functionality of programs; to ..."
Abstract

Cited by 87 (5 self)
 Add to MetaCart
Abstract: Mode and data dependency analyses find many applications in the generation of efficient executable code for logic programs. For example, mode information can be used to generate specialized unification instructions where permissible; to detect determinacy and functionality of programs; to generate index structures more intelligently; to reduce the amount of runtime tests in systems that support goal suspension; and in the integration of logic and functional languages. Data dependency information can be used for various sourcelevel optimizing transformations, to improve backtracking behavior, and to parallelize logic programs. This paper describes and proves correct an algorithm for the static inference of modes and data dependencies in a program. The algorithm is shown to be quite efficient for programs commonly encountered in practice.
A General Framework for Semanticsbased Bottomup Abstract Interpretation of Logic Programs
 ACM Transactions on Programming Languages and Systems
, 1993
"... Interpretation of Logic Programs Roberto Barbuti , Roberto Giacobazzi , Giorgio Levi Dipartimento di Informatica Universit`a di Pisa Corso Italia 40, 56125 Pisa fbarbuti,giaco,levig@di.unipi.it in ACM Transactions on Programming Languages and Systems Vol 15, January 1993 Abstract The theory ..."
Abstract

Cited by 75 (26 self)
 Add to MetaCart
Interpretation of Logic Programs Roberto Barbuti , Roberto Giacobazzi , Giorgio Levi Dipartimento di Informatica Universit`a di Pisa Corso Italia 40, 56125 Pisa fbarbuti,giaco,levig@di.unipi.it in ACM Transactions on Programming Languages and Systems Vol 15, January 1993 Abstract The theory of abstract interpretation provides a formal framework to develop advanced dataflow analysis tools. The idea is to define a nonstandard semantics which is able to compute, in finite time, an approximated model of the program. In this paper we define an abstract interpretation framework based on a fixpoint approach to the semantics. This leads to the definition, by means of a suitable set of operators, of an abstract fixpoint characterization of a model associated with the program. Thus, we obtain a specializable abstract framework for bottomup abstract interpretations of definite logic programs. The specialization of the framework is shown on two examples, namely ground dependence analysis and depthk analysis.
Automatic Mode Inference for Logic Programs
 Journal of Logic Programming
, 1988
"... In general, logic programs are undirected, i.e. there is no concept of "input" and "output" arguments to a procedure. An argument may be used either as an input or as an output argument, and programs may be executed either in a "forward" direction or in a "backward" direction. However, it is often t ..."
Abstract

Cited by 73 (7 self)
 Add to MetaCart
In general, logic programs are undirected, i.e. there is no concept of "input" and "output" arguments to a procedure. An argument may be used either as an input or as an output argument, and programs may be executed either in a "forward" direction or in a "backward" direction. However, it is often the case that in a given program, a predicate is used with some of its arguments used consistently as input arguments and others as output arguments. Such mode information can be used by a compiler to effect various optimizations. This paper considers the problem of automatically inferring the modes of the predicates in a program. The dataflow analysis we use is more powerful than approaches relying on syntactic characteristics of programs, e.g. [18]. Our work differs from that of Mellish [14, 15] in that (i) we give a sound and efficient treatment of variable aliasing in mode inference; (ii) by propagating instantiation information using state transformations rather than through dependen...
Inductive Assertion Method For Logic Programs
, 1988
"... Certain properties of logic programs are inexpressible in terms of their declarative semantics. One example of such properties would be the actual form of procedure calls and successes which occur during computations of a program. They are often used by programmers in their informal reasoning. In th ..."
Abstract

Cited by 55 (14 self)
 Add to MetaCart
Certain properties of logic programs are inexpressible in terms of their declarative semantics. One example of such properties would be the actual form of procedure calls and successes which occur during computations of a program. They are often used by programmers in their informal reasoning. In this paper, the inductive assertion method for proving partial correctness of logic programs is introduced and proved sound. The method makes it possible to formulate and prove properties which are inexpressible in terms of the declarative semantics. An execution mechanism using the Prolog computation rule and arbitrary search strategy (eg. ORparallelism or Prolog backtracking) is assumed. The method may be also used to specify the semantics of some extralogical builtin procedures for which the declarative semantics is not applicable. 1. INTRODUCTION One of the most attractive features of logic programs is their declarative semantics [Apt, van Emden][Lloyd]. It describes program meaning in ...
Compositional Analysis of Modular Logic Programs
 In Proc. Twentieth Annual ACM Symp. on Principles of Programming Languages
, 1993
"... This paper describes a semantic basis for a compositional approach to the analysis of logic programs. A logic program is viewed as consisting of a set of modules, each module defining a subset of the program's predicates. Analyses are constructed by considering abstract interpretations of a compo ..."
Abstract

Cited by 55 (10 self)
 Add to MetaCart
This paper describes a semantic basis for a compositional approach to the analysis of logic programs. A logic program is viewed as consisting of a set of modules, each module defining a subset of the program's predicates. Analyses are constructed by considering abstract interpretations of a compositional semantics. The abstract meaning of a module corresponds to its analysis and composition of abstract meanings corresponds to composition of analyses. Such an approach is essential for large program development so that altering one module does not require reanalysis of the entire program. A compositional analysis for ground dependencies is included to illustrate the approach. To the best of our knowledge this is the first account of a compositional framework for the analysis of (logic) programs. 1 Introduction It is widely acknowledged that as the size of a program increases, it becomes impractical to maintain it as a single monolithic structure. Instead, the program has to be...
Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation
, 1993
"... Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation* vincent englebert, baudouin le charlier and didier roland University of Namur, 21 rue Grandgagnage, B5000 Namur, Belgium pascal van hentenryck+ Brown University, Box 1910, Providence, RI 02912 ..."
Abstract

Cited by 41 (14 self)
 Add to MetaCart
Interpretation Algorithms for Prolog: Two Optimization Techniques and their Experimental Evaluation* vincent englebert, baudouin le charlier and didier roland University of Namur, 21 rue Grandgagnage, B5000 Namur, Belgium pascal van hentenryck+ Brown University, Box 1910, Providence, RI 02912, U.S.A.
Generalized Semantics and Abstract Interpretation for Constraint Logic Programs
, 1995
"... We present a simple and powerful generalized algebraic semantics for constraint logic programs that is parameterized with respect to the underlying constraint system. The idea is to abstract away from standard semantic objects by focusing on the general properties of any possibly nonstandard ..."
Abstract

Cited by 38 (5 self)
 Add to MetaCart
We present a simple and powerful generalized algebraic semantics for constraint logic programs that is parameterized with respect to the underlying constraint system. The idea is to abstract away from standard semantic objects by focusing on the general properties of any possibly nonstandard  semantic definition. In constraint logic programming, this corresponds to a suitable definition of the constraint system supporting the semantic definition. An algebraic structure is introduced to formalize the notion of a constraint system, thus making classical mathematical results applicable. Both topdown and bottomup semantics are considered. Nonstandard semantics for constraint logic programs can then be formally specified using the same techniques used to define standard semantics. Different nonstandard semantics for constraint logic languages can be specified in this ...
On the Complexity of Dataflow Analysis of Logic Programs
, 1992
"... This article reports some results on this correlation in the context of logic programs. A formal notion of the "precision" of an analysis algorithm is proposed, and this is used to characterize the worstcase computational complexity of a number of dataflow analyses with different degrees of precisi ..."
Abstract

Cited by 35 (4 self)
 Add to MetaCart
This article reports some results on this correlation in the context of logic programs. A formal notion of the "precision" of an analysis algorithm is proposed, and this is used to characterize the worstcase computational complexity of a number of dataflow analyses with different degrees of precision. While this article considers the analysis of logic programs, the technique proposed, namely the use of "exactness sets" to study relationships between complexity and precision of analyses, is not specific to logic programming in any way, and is equally applicable to flow analyses of other language families.
Modelling Prolog Control
, 1992
"... The goal of this paper is to construct a semantic basis for the abstract interpretation of Prolog programs. Prolog is a wellknown logic programming language which applies a depthfirst search strategy in order to provide a practical approximation of Horn clause logic. While pure logic programming h ..."
Abstract

Cited by 28 (13 self)
 Add to MetaCart
The goal of this paper is to construct a semantic basis for the abstract interpretation of Prolog programs. Prolog is a wellknown logic programming language which applies a depthfirst search strategy in order to provide a practical approximation of Horn clause logic. While pure logic programming has clean fixpoint, modeltheoretic and operational semantics the situation for Prolog is different. Difficulties in capturing the declarative meaning of Prolog programs have led to various semantic definitions which attempt to encode the search strategy in different mathematical frameworks. However semantic based analyses of Prolog are typically achieved by abstracting the more simple but less precise declarative semantics of pure logic Programs. We propose instead to model Prolog control in a simple constraint logic language which is presented together with its declarative and operational semantics. This enables us to maintain the usual approach to declarative semantics of logic programs wh...