Results 1  10
of
44
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 115 (26 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.
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...
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 36 (12 self)
 Add to MetaCart
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
Angelic NonDeterminism in Concurrent Constraint Programming
, 1991
"... Concurrent constraint programming [Sar89,SR90,SRP91] is a simple and powerful model of computation based on the notions of storeasconstraint and process as information transducer. In this paper we describe a (domaintheoretic) semantic foundation for cc languages with ask, tell, parallel compositi ..."
Abstract

Cited by 30 (4 self)
 Add to MetaCart
Concurrent constraint programming [Sar89,SR90,SRP91] is a simple and powerful model of computation based on the notions of storeasconstraint and process as information transducer. In this paper we describe a (domaintheoretic) semantic foundation for cc languages with ask, tell, parallel composition, hiding, recursion and angelic nondeterminism ("parallel backtracking"). This class of languages includes the cc/Herbrand language [Sar89] and a simpler reworking [HS91] of CHIP. Generalizing previous work on determinate constraint programming [JPP89,SRP91], we describe the semantics for such a language based on modelling a process as a set of constraints, with parallel composition (conjunction) given by set intersection and orparallel search (disjunction) given by set union. This is achieved by viewing processes as continuous linear closure operators on the Smyth powerdomain of the underlying constraint system. The model is shown to be fully abstract for the observation of finite appro...
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 28 (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...
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 (5 self)
 Add to MetaCart
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
S.: Modularity aspects of disjunctive stable models
 LPNMR 2007. LNCS (LNAI
, 2007
"... Practically all programming languages allow the programmer to split a program into several modules which brings along several advantages in software development. In this paper, we are interested in the area of answerset programming where fully declarative and nonmonotonic languages are applied. In ..."
Abstract

Cited by 27 (9 self)
 Add to MetaCart
Practically all programming languages allow the programmer to split a program into several modules which brings along several advantages in software development. In this paper, we are interested in the area of answerset programming where fully declarative and nonmonotonic languages are applied. In this context, obtaining a modular structure for programs is by no means straightforward since the output of an entire program cannot in general be composed from the output of its components. To better understand the effects of disjunctive information on modularity we restrict the scope of analysis to the case of disjunctive logic programs (DLPs) subject to stablemodel semantics. We define the notion of a DLPfunction, where a welldefined input/output interface is provided, and establish a novel module theorem which indicates the compositionality of stablemodel semantics for DLPfunctions. The module theorem extends the wellknown splittingset theorem and enables the decomposition of DLPfunctions given their strongly connected components based on positive dependencies induced by rules. In this setting, it is also possible to split shared disjunctive rules among components using a generalized shifting technique. The concept of modular equivalence is introduced for the mutual comparison of DLPfunctions using a generalization of a translationbased verification method. 1.
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 26 (5 self)
 Add to MetaCart
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.