Results 1  10
of
35
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 ..."
Abstract

Cited by 74 (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...
Precise and Efficient Groundness Analysis for Logic Programs
 ACM LETTERS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1993
"... We show how precise groundness information can be extracted from logic programs. The idea is to use abstract interpretation with Boolean functions as "approximations" to groundness dependencies between variables. This idea is not new, and different classes of Boolean functions have been us ..."
Abstract

Cited by 57 (3 self)
 Add to MetaCart
We show how precise groundness information can be extracted from logic programs. The idea is to use abstract interpretation with Boolean functions as "approximations" to groundness dependencies between variables. This idea is not new, and different classes of Boolean functions have been used. We argue, however, that one class, the positive functions is more suitable than others. Positive Boolean functions have a certain property which we (inspired by A. Langen) call "condensation." This property allows for rapid computation of groundness information.
A Universal TopDown Fixpoint Algorithm
, 1992
"... Computing fixpoints and postfixpoints of transformations has numerous applications in computer science. In this paper, we present a universal topdown fixpoint algorithm based on the weak assumption that the transformation is defined by an effective procedure. Given the procedure and a value ff, the ..."
Abstract

Cited by 25 (5 self)
 Add to MetaCart
Computing fixpoints and postfixpoints of transformations has numerous applications in computer science. In this paper, we present a universal topdown fixpoint algorithm based on the weak assumption that the transformation is defined by an effective procedure. Given the procedure and a value ff, the universal algorithm computes the value of ff in the least fixpoint of the transformation and has the property of focusing on the subset of elements necessary to compute the value of ff. The total correctness of the algorithm is proven and requires some weak (but rather technical) assumptions. These conditions can be relaxed further if postfixpoints suffice for the application. As a consequence, the algorithm generalizes and abstracts numerous algorithms and provides a versatile alternative to bottomup algorithms. It has been used to derive specific abstract interpretation algorithms for Prolog, which are practical both in terms of efficiency and accuracy and are, to our knowledge, the fast...
Definiteness Analysis for CLP(R)
 In Australian Computer Science Conference
, 1993
"... Constraint logic programming (CLP) languages generalise logic programming languages, amalgamating logic programming and constraint programming. Combining the best of two worlds, they provide powerful tools for wide classes of problems. As with logic programming languages, code optimization by compil ..."
Abstract

Cited by 19 (0 self)
 Add to MetaCart
Constraint logic programming (CLP) languages generalise logic programming languages, amalgamating logic programming and constraint programming. Combining the best of two worlds, they provide powerful tools for wide classes of problems. As with logic programming languages, code optimization by compilers is an important issue in the implementation of CLP languages. A compiler needs sophisticated global information, collected by dataflow analyses, to generate competitive code. One kind of useful dataflow information concerns the point at which variables become definite, that is, constrained to take a unique value. In this paper we present a very precise dataflow analysis to determine definiteness, and we discuss its applications. By separating the two concerns: correctness and implementation techniques, abstract interpretation enables us to develop a sophisticated dataflow analysis in a straightforward manner, in fact in a framework where the correctness of the analysis is easily establis...
Abductive Analysis of Modular Logic Programs
 Journal of Logic and Computation
, 1994
"... We introduce a practical method for abductive analysis of modular logic programs. This is obtained by reversing the deduction process, which is usually applied in staticdataflow analysis of logic programs. The approach is validated in the framework of abstract interpretation. The abduced informatio ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
We introduce a practical method for abductive analysis of modular logic programs. This is obtained by reversing the deduction process, which is usually applied in staticdataflow analysis of logic programs. The approach is validated in the framework of abstract interpretation. The abduced information provides an abstract specification for program modules which can be of assistance both in topdown development of programs and in compiletime optimization. To the best of our knowledge this is the first application of abductive reasoning in dataflow analysis of logic programs. 1 Introduction Dataflow analysis by abstract interpretation is typically intended to statically derive approximated information (the analysis) about runtime properties of programs, by applying rules (clauses) to initial states (goals), with the inference of a result. This deductive approach to logic program analysis is usually based on abstract unfolding (i.e. replacement + abstract unification) and is shared by s...
Abstract Interpretation of Linear Logic Programming
 IN PROC. OF ILPS'93
, 1993
"... Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Lo ..."
Abstract

Cited by 14 (2 self)
 Add to MetaCart
Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Logic. A proof normalization procedure, called "focusing", has been proposed to make the problem of proof search tractable. Correspondingly, there is a normalization procedure mapping formulae of Linear Logic into a syntactic fragment of that logic, called LinLog, and in which the focusing normalization for proofs can be most conveniently expressed. In this paper, we propose to push this compilation/normalization process further, by applying abstract interpretation and partial evaluation techniques to (focused) proofs in LinLog. These techniques provide information concerning the evolution of the computational resources (formulae) during the execution (proof construction). The practical outcome that we expect from this theoretical effort is the definition of a general tool for statically analyzing and reasoning about the runtime behavior of programs in frameworks where computations can be accounted for in terms of proof search in Linear Logic.
Static Analysis of Linear Logic Programming
 NEW GENERATION COMPUTING
, 1997
"... Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Logic. A proof normalization procedure, called "focusing", has been proposed to make the problem of proof search tractable. Correspondingly,
Modular Logic Programs over Finite Domains
 PROC. EIGHT ITALIAN CONFERENCE ON LOGIC PROGRAMMING
, 1993
"... In this paper we study the properties of a compositional semantics for logic programs and its applications to modular analysis and logicbased databases, focusing on programs defined on a finite domain (i.e. on a function free finite signature). By this restriction we obtain a finite characterizatio ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
In this paper we study the properties of a compositional semantics for logic programs and its applications to modular analysis and logicbased databases, focusing on programs defined on a finite domain (i.e. on a function free finite signature). By this restriction we obtain a finite characterization of the compositional semantics which has the same correctness and compositionality properties of the original (fixpointbased) definition, even if the latter could introduce infinite denotations also for finite domains programs. This property is particularly suitable for semanticsbased program analysis, since it allows to identify a class of abstract domains for which the same finite characterization of the (abstract) compositional semantics holds. By combining this result with an existing framework for the modular analysis of logic programs, we can obtain a compositional analysis without requiring an additional level of abstraction. The finiteness of our characterization can also be usef...