Results 1  10
of
26
SSemantics Approach: Theory and Applications
, 1994
"... The paper is a general overview of an approach to the semantics of logic programs whose aim is finding notions of models which really capture the operational semantics, and are therefore useful for defining program equivalences and for semanticsbased program analysis. The approach leads to the intr ..."
Abstract

Cited by 117 (27 self)
 Add to MetaCart
The paper is a general overview of an approach to the semantics of logic programs whose aim is finding notions of models which really capture the operational semantics, and are therefore useful for defining program equivalences and for semanticsbased program analysis. The approach leads to the introduction of extended interpretations which are more expressive than Herbrand interpretations. The semantics in terms of extended interpretations can be obtained as a result of both an operational (topdown) and a fixpoint (bottomup) construction. It can also be characterized from the modeltheoretic viewpoint, by defining a set of extended models which contains standard Herbrand models. We discuss the original construction modeling computed answer substitutions, its compositional version and various semantics modeling more concrete observables. We then show how the approach can be applied to several extensions of positive logic programs. We finally consider some applications, mainly in the area of semanticsbased program transformation and analysis.
Model Checking in CLP
, 1999
"... We show that Constraint Logic Programming (CLP) can serve as a conceptual basis and as a practical implementation platform for the model checking of infinitestate systems. Our contributions are: (1) a semanticspreserving translation of concurrent systems into CLP programs, (2) a method for verifyi ..."
Abstract

Cited by 90 (27 self)
 Add to MetaCart
We show that Constraint Logic Programming (CLP) can serve as a conceptual basis and as a practical implementation platform for the model checking of infinitestate systems. Our contributions are: (1) a semanticspreserving translation of concurrent systems into CLP programs, (2) a method for verifying safety and liveness properties on the CLP programs produced by the translation. We have implemented the method in a CLP system and verified wellknown examples of infinitestate programs over integers, using here linear constraints as opposed to Presburger arithmetic as in previous solutions.
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.
Rule ordering in bottomup fixpoint evaluation of logic programs
 IEEE Transactions on Knowledge and Data Engineering
, 1990
"... Abstract Logic programs can be evaluated bottomup by repeatedly applying all rules, in "iterations", until the fixpoint is reached. However, it is often desirableand in some cases, e.g. programs with stratified negation, even necessary to guarantee the semanticsto apply the ru ..."
Abstract

Cited by 41 (9 self)
 Add to MetaCart
Abstract Logic programs can be evaluated bottomup by repeatedly applying all rules, in &quot;iterations&quot;, until the fixpoint is reached. However, it is often desirableand in some cases, e.g. programs with stratified negation, even necessary to guarantee the semanticsto apply the rules in some order. We present two algorithms that apply rules in a specified order without repeating inferences. One of them (GSN) is capable of dealing with a wide range of rule orderings but with a little more overhead than the wellknown seminaive algorithm (which we call BSN). The other (PSN) handles a smaller class of rule orderings, but with no overheads beyond those in BSN. We also demonstrate that by choosing a good ordering, we can reduce the number of rule applications (and thus joins). We present a theoretical analysis of rule orderings and identify orderings that minimize the number of rule applications (for all possible instances of the base relations) with respect to a class of orderings called fair orderings. We also show that while nonfair orderings may do a little better on some data sets, they can do much worse on others. The analysis is supplemented by performance results.
The CORAL Deductive System
 THE VLDB JOURNAL
, 1994
"... CORAL is a deductive system which supports a rich declarative language, and an interface to C++ which allows for a combination of declarative and imperative programming. The declarative query language supports general Horn clauses augmented with complex terms, setgrouping, aggregation, negation, ..."
Abstract

Cited by 27 (2 self)
 Add to MetaCart
CORAL is a deductive system which supports a rich declarative language, and an interface to C++ which allows for a combination of declarative and imperative programming. The declarative query language supports general Horn clauses augmented with complex terms, setgrouping, aggregation, negation, and relations with tuples that contain (universally quantified) variables. A CORAL declarative program can be organized as a collection of interacting modules. The CORAL implementation supports a wide range of evaluation strategies, and automatically chooses an efficient evaluation strategy for each module in the program. In addition, users are permitted to guide query optimization, if desired, by selecting from among a wide range of control choices at the level of each module. The CORAL system provides imperative constructs such as update, insert and delete rules. CORAL also has an interface with C++, and users can program in a combination of declarative CORAL and C++ extended with ...
Bottomup Evaluation and Query Optimization of WellFounded Models
 Theoretical Computer Science
, 1995
"... We present a bottomup operational procedure for computing wellfounded models of allowed programs with negation. This procedure provides a practical method of handling programs that involve unstratified negation in a manner that may be mixed with other evaluation approaches, such as seminaive eval ..."
Abstract

Cited by 26 (1 self)
 Add to MetaCart
We present a bottomup operational procedure for computing wellfounded models of allowed programs with negation. This procedure provides a practical method of handling programs that involve unstratified negation in a manner that may be mixed with other evaluation approaches, such as seminaive evaluation and various program transformations. We define classes of programs and sideways information passing strategies (sips) for which the magic sets transformation preserves wellfounded models with respect to the query. The classes of programs and sips we consider strictly subsume those already considered in the literature, and include stratified programs (with any choice of sips), lefttoright modularly stratified programs (with leftto right sips) and arbitrary programs (with wellfounded sips). For these programs and sips, our procedure for computing wellfounded models is applicable to the rewritten programs, thus allowing increased efficiency by specializing a program for a query. Fi...
Efficient Goal Directed Bottomup Evaluation of Logic Programs
 Journal of Logic Programming
, 1998
"... This paper introduces a new strategy for the efficient goal directed bottomup evaluation of logic programs. Instead of combining a standard bottomup evaluation strategy with a Magicset transformation, the evaluation strategy is specialized for the application to Magicset programs which are charact ..."
Abstract

Cited by 20 (7 self)
 Add to MetaCart
This paper introduces a new strategy for the efficient goal directed bottomup evaluation of logic programs. Instead of combining a standard bottomup evaluation strategy with a Magicset transformation, the evaluation strategy is specialized for the application to Magicset programs which are characterized by clause bodies with a high degree of overlapping. The approach is similar to other techniques which avoid recomputation by maintaining and reusing partial solutions to clause bodies. However, the overhead is considerably reduced as these are maintained implicitly by the underlying Prolog implementation. The technique is presented as a simple metainterpreter for goal directed bottomup evaluation. No Magicset transformation is involved as the dependencies between calls and answers are expressed directly within the interpreter. The proposed technique has been implemented and shown to provide substantial speedups in applications of semantic based program analysis based on bottomup...
Constrained Dependencies
 Theoretical Computer Science
, 1995
"... We extend the notions of functional and finiteness dependencies to apply to subsets of a relation that are specified by constraints. These dependencies have many applications. We are able to characterize those constraint domains which admit a polynomial time solution of the implication problem (assu ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
We extend the notions of functional and finiteness dependencies to apply to subsets of a relation that are specified by constraints. These dependencies have many applications. We are able to characterize those constraint domains which admit a polynomial time solution of the implication problem (assuming P/=NP) and give an efficient algorithm for these cases, modulo the cost of constraint manipulation. For other cases we offer approximate algorithms. Finally, we outline some applications of these dependencies to the analysis and optimization of CLP programs and database queries.
Detecting Determinate Computations by Bottomup Abstract Interpretation
 In Proceedings of ESOP'92
, 1992
"... Abstract One of the most interesting characteristics of logic programs is the ability of expressing nondeterminism in an elegant and concise way. On the other hand, implementation of nondeterminism poses serious problems both in the sequential and in the concurrent case. If determinate computations ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
Abstract One of the most interesting characteristics of logic programs is the ability of expressing nondeterminism in an elegant and concise way. On the other hand, implementation of nondeterminism poses serious problems both in the sequential and in the concurrent case. If determinate computations are detected through a static analysis, a noticeable reduction of the execution time may be obtained. This work describes a static analysis to detect determinate computations. The analysis does not require the knowledge of the activating modes of the predicate and it derives determinacies which may be inferred from the success set of the program.
Declarative Interpretations Reconsidered
 Proceedings of the International Conference on Logic Programming (ICLP'94), Santa Margherita Ligure
, 1994
"... Three semantics have been proposed as the most promising candidates for a declarative interpretation for logic programs and pure Prolog programs: the least Herbrand model, the least term model, i.e. the Csemantics, and the Ssemantics. Previous results show that a strictly increasing information ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
Three semantics have been proposed as the most promising candidates for a declarative interpretation for logic programs and pure Prolog programs: the least Herbrand model, the least term model, i.e. the Csemantics, and the Ssemantics. Previous results show that a strictly increasing information ordering between these semantics exists for the class of all programs. In particular, the Ssemantics allows us to model computed answer substitutions, which is not the case for the other two. We study here the relationship between these three semantics for specific classes of programs. We show that for a large class of programs (which is Turing complete) these three semantics are isomorphic. As a consequence, given a query, we can extract from the least Herbrand model of the program all computed answer substitutions. This result is applied to propose a method for proving partial correctness of programs based on the least Herbrand model. AMS Subject Classification (1991): 68Q40, 68T15. CR Subject Classification (1991): F.3.2., F.4.1, H.3.3, I.2.3. Keywords and Phrases: logic programs, declarative semantics, isomorphism, partial correctness. Notes. The research of the first author was partly supported by the ESPRIT Basic Research Action 6810 (Compulog 2). The research of the second author was supported by the Italian National Research Council (CNR). This article will appear in: Proc. of International Conference on Logic Programming (ICLP '94), The MIT Press, P. Van Hentenryck (editor). 1