1,752 research outputs found
Node coarsening calculi for program slicing
Several approaches to reverse and re-engineering are based upon program slicing. Unfortunately, for large systems, such as those which typically form the subject of reverse engineering activities, the space and time requirements of slicing can be a barrier to successful application. Faced with this problem, several authors have found it helpful to merge control flow graph (CFG) nodes, thereby improving the space and time requirements of standard slicing algorithms. The node-merging process essentially creates a 'coarser' version of the original CFG. The paper introduces a theory for defining control flow graph node coarsening calculi. The theory formalizes properties of interest, when coarsening is used as a precursor to program slicing. The theory is illustrated with a case study of a coarsening calculus, which is proved to have the desired properties of sharpness and consistency
A New Rational Algorithm for View Updating in Relational Databases
The dynamics of belief and knowledge is one of the major components of any
autonomous system that should be able to incorporate new pieces of information.
In order to apply the rationality result of belief dynamics theory to various
practical problems, it should be generalized in two respects: first it should
allow a certain part of belief to be declared as immutable; and second, the
belief state need not be deductively closed. Such a generalization of belief
dynamics, referred to as base dynamics, is presented in this paper, along with
the concept of a generalized revision algorithm for knowledge bases (Horn or
Horn logic with stratified negation). We show that knowledge base dynamics has
an interesting connection with kernel change via hitting set and abduction. In
this paper, we show how techniques from disjunctive logic programming can be
used for efficient (deductive) database updates. The key idea is to transform
the given database together with the update request into a disjunctive
(datalog) logic program and apply disjunctive techniques (such as minimal model
reasoning) to solve the original update problem. The approach extends and
integrates standard techniques for efficient query answering and integrity
checking. The generation of a hitting set is carried out through a hyper
tableaux calculus and magic set that is focused on the goal of minimality.Comment: arXiv admin note: substantial text overlap with arXiv:1301.515
Active Integrity Constraints and Revision Programming
We study active integrity constraints and revision programming, two
formalisms designed to describe integrity constraints on databases and to
specify policies on preferred ways to enforce them. Unlike other more commonly
accepted approaches, these two formalisms attempt to provide a declarative
solution to the problem. However, the original semantics of founded repairs for
active integrity constraints and justified revisions for revision programs
differ. Our main goal is to establish a comprehensive framework of semantics
for active integrity constraints, to find a parallel framework for revision
programs, and to relate the two. By doing so, we demonstrate that the two
formalisms proposed independently of each other and based on different
intuitions when viewed within a broader semantic framework turn out to be
notational variants of each other. That lends support to the adequacy of the
semantics we develop for each of the formalisms as the foundation for a
declarative approach to the problem of database update and repair. In the paper
we also study computational properties of the semantics we consider and
establish results concerned with the concept of the minimality of change and
the invariance under the shifting transformation.Comment: 48 pages, 3 figure
Computing stable models by program transformation
In analogy to the Davis--Putnam procedure we develop a new procedure for computing stable models of propositional normal disjunctive logic programs, using case analysis and simplification. Our procedure enumerates all stable mofels without repetition and without the need for a minimality check. Since it is not necessary to store the set of stable models explicitly, the procedure runs in polynomial space. We allow clauses with empty heads, in order to represent truth or falsity of a proposition as a one--literal clause. In particular, a clause of form expresses that is contrained to be true, without providing a justification for . Adding this clause to a program restricts its stable models to those containing A, without introducing new stable models. Together with this provides the basis for case analysis. We present our procedure as a set of rules which transform a program into a set of solved forms, which resembles the standard method for presenting unification algorithms. Rules are sound in the sense that they preserve the set of stable models. subset of the rules is shown to be complete in the sense that for each stable model a solved form can be obtained. The method allows for concise presentation, flexible choice of a control strategy and simple correctness proofs
- …