Results 1  10
of
60
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 126 (28 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.
MODULARITY IN LOGIC PROGRAMMING
 J. LOGIC PROGRAMMING 1993:12:1199
, 1993
"... The research on modular logic programming has evolved along two different directions during the past decade. Various papers have focused primarily on the problems of programminginthelarge. They have proposed module systems equipped with compositional operators for building programs as combination ..."
Abstract

Cited by 89 (4 self)
 Add to MetaCart
The research on modular logic programming has evolved along two different directions during the past decade. Various papers have focused primarily on the problems of programminginthelarge. They have proposed module systems equipped with compositional operators for building programs as combinations of separate and independent components. Other proposals have instead concentrated on the problem of programminginthesmall in an attempt to enrich logic programming with abstraction and scoping mechanisms available in other programming paradigms. The issues that arise in the two approaches are substantially different. The compositional operators of the former allow one to structure programs without any need to extend the theory of Horn clauses. The scoping and abstraction mechanisms of the latter are modeled in terms of the logical connectives of extended logic languages.
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 ..."
Abstract

Cited by 58 (11 self)
 Add to MetaCart
(Show Context)
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...
Modularity Aspects of Disjunctive Stable Models
, 2007
"... Practically all programming languages used in software engineering allow to split a program into several modules. For fully declarative and nonmonotonic logic programming languages, however, the modular structure of programs is hard to realise, since the output of an entire program cannot in general ..."
Abstract

Cited by 43 (10 self)
 Add to MetaCart
(Show Context)
Practically all programming languages used in software engineering allow to split a program into several modules. For fully declarative and nonmonotonic logic programming languages, however, the modular structure of programs is hard to realise, since the output of an entire program cannot in general be composed from the output of its component programs in a direct manner. In this paper, we consider these aspects for the stablemodel semantics of disjunctive logic programs (DLPs). We define the notion of a DLPfunction, where a welldefined input/output interface is provided, and establish a novel module theorem enabling a suitable compositional semantics for modules. The module theorem extends the wellknown splittingset theorem and allows also a generalisation of a shifting technique for splitting shared disjunctive rules among components.
Modular Logic Programming and Generalized Quantifiers
 PROCEEDINGS OF THE 4TH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING AND NONMONOTONIC REASONING (LPNMR97), NUMBER 1265 IN LNCS
, 1997
"... The research on systems of logic programming with modules has followed two mainstreams, programminginthelarge, where compositional operators are provided for combining separate and independent modules, and programminginthesmall, which aims at enhancing logic programming with new logical co ..."
Abstract

Cited by 40 (14 self)
 Add to MetaCart
(Show Context)
The research on systems of logic programming with modules has followed two mainstreams, programminginthelarge, where compositional operators are provided for combining separate and independent modules, and programminginthesmall, which aims at enhancing logic programming with new logical connectives. In this paper, we present
Observable Semantics for Constraint Logic Programs
 Journal of Logic and Computation
, 1995
"... We consider the Constraint Logic Programming paradigm CLP(X ), as defined by Jaffar and Lassez [29, 28]. CLP(X ) integrates a generic computational mechanism based on constraints within the logic programming framework. The paradigm retains the semantic properties of pure logic programs, namely the e ..."
Abstract

Cited by 33 (2 self)
 Add to MetaCart
We consider the Constraint Logic Programming paradigm CLP(X ), as defined by Jaffar and Lassez [29, 28]. CLP(X ) integrates a generic computational mechanism based on constraints within the logic programming framework. The paradigm retains the semantic properties of pure logic programs, namely the existence of equivalent operational, modeltheoretic and fixpoint semantics. We introduce a framework for defining various semantics, each corresponding to a specific observable property of CLP computations. Each semantics can be defined either operationally (i.e. topdown) or declaratively (i.e. bottomup). The construction is based on a new notion of interpretation, on a natural extension of the standard notion of model and on the definition of various immediate consequences operators, whose least fixpoints on the lattice of interpretations are models corresponding to various observable properties. We first consider some semantics defined in [29] and their relations, in terms of correctne...
D'ej`a vu in fixpoints of logic programs
 in Proceedings of the North American Conference on Logic Programming
, 1989
"... We investigate properties of logic programs that permit refinements in their fixpoint evaluation and shed light on the choice of control strategy. A fundamental aspect of a bottomup computation is that we must constantly check to see if the fixpoint has been reached. If the computation iteratively ..."
Abstract

Cited by 28 (6 self)
 Add to MetaCart
(Show Context)
We investigate properties of logic programs that permit refinements in their fixpoint evaluation and shed light on the choice of control strategy. A fundamental aspect of a bottomup computation is that we must constantly check to see if the fixpoint has been reached. If the computation iteratively applies all rules, bottomup, until the fixpoint is reached, this amounts to checking if any new facts were produced after each iteration. Such a check also enhances efficiency in that duplicate facts need not be reused in subsequent iterations, if we use the Seminaive fixpoint evaluation strategy. However, the cost of this check is a significant component of the cost of bottomup fixpoint evaluation, and for many programs the full check is unnecessary. We identify properties of programs that enable us to infer that a much simpler check (namely, whether any fact was produced in the previous iteration) suffices. While it is in general undecidable whether a given program has these properties, we develop techniques to test sufficient conditions, and we illustrate these techniques on some simple programs that have these properties. The significance of our results lies in the significantly larger class of programs for which bottomup evaluation methods, enhanced with the optimizations that we propose, become competitive with standard (topdown) implementations of logic programs. This increased efficiency is achieved without compromising the completeness of the bottomup approach; this is in contrast to the incompleteness that accompanies the depthfirst search strategy that is central to most topdown implementations.
A declarative view of inheritance in logic programming
 Proc. Joint Int. Conference and Symposium on Logic Programming
, 1992
"... We discuss a declarative characterization of inheritance in logic programming. Our approach is inspired both by existing literature on denotational models for inheritance and by earlier work on a compositional definition of the semantics of logic Programming. We consider a general form of inheritanc ..."
Abstract

Cited by 27 (4 self)
 Add to MetaCart
(Show Context)
We discuss a declarative characterization of inheritance in logic programming. Our approach is inspired both by existing literature on denotational models for inheritance and by earlier work on a compositional definition of the semantics of logic Programming. We consider a general form of inheritance which is defined with an overriding semantics between inherited definitions and incorporates two different mechanisms known in the literature as static and dynamic inheritance. The result of our semantic reconstruction is an elegant framework which enables us to capture the compositional properties of inheritance and offers a uniform basis for the analysis of the different mechanisms we consider. 1
A Theory of Observables for Logic Programs
, 1999
"... We define a semantic framework to reason about properties of abstractions of SLDderivations. The framework allows us to address problems such as the relation between the (topdown) operational semantics and the (bottomup) denotational semantics, the existence of a denotation for a set of definite ..."
Abstract

Cited by 20 (5 self)
 Add to MetaCart
(Show Context)
We define a semantic framework to reason about properties of abstractions of SLDderivations. The framework allows us to address problems such as the relation between the (topdown) operational semantics and the (bottomup) denotational semantics, the existence of a denotation for a set of definite clauses and their properties (compositionality w.r.t. various syntactic operators, correctness, minimality and precision). Using abstract interpretation techniques to model abstraction allows us to state very simple conditions on the observables which guarantee the validity of several general theorems.