Results 1  10
of
24
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 74 (25 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.
Bottomup abstract interpretation of logic programs
 Theoretical Computer Science
, 1994
"... Abstract This paper presents a formal framework for the bottomup abstract interpretation of logic programs which can be applied to approximate answer substitutions, partial an swer substitutions and call patterns for a given program and arbitrary initial goal. The framework is based on a T P like ..."
Abstract

Cited by 56 (16 self)
 Add to MetaCart
Abstract This paper presents a formal framework for the bottomup abstract interpretation of logic programs which can be applied to approximate answer substitutions, partial an swer substitutions and call patterns for a given program and arbitrary initial goal. The framework is based on a T P like semantics defined over a Herbrand universe with variables which has previously been shown to determine the answer substitutions for arbitrary initial goals. The first part of the paper reconstructs this semantics to provide a more adequate basis for abstract interpretation. A notion of abstract substitution is introduced and shown to determine an abstract semantic function which for a given program can be applied to approximate the answer substitutions for an arbitrary initial goal.
LambdaDropping: Transforming Recursive Equations into Programs with Block Structure
, 2001
"... Lambdalifting a blockstructured program transforms it into a set of recursive equations. We present the symmetric transformation: lambdadropping. Lambdadropping a set of recursive equations restores block structure and lexical scope. For lack ..."
Abstract

Cited by 39 (10 self)
 Add to MetaCart
Lambdalifting a blockstructured program transforms it into a set of recursive equations. We present the symmetric transformation: lambdadropping. Lambdadropping a set of recursive equations restores block structure and lexical scope. For lack
Generalized Semantics and Abstract Interpretation for Constraint Logic Programs
, 1995
"... We present a simple and powerful generalized algebraic semantics for constraint logic programs that is parameterized with respect to the underlying constraint system. The idea is to abstract away from standard semantic objects by focusing on the general properties of any possibly nonstandard ..."
Abstract

Cited by 38 (5 self)
 Add to MetaCart
We present a simple and powerful generalized algebraic semantics for constraint logic programs that is parameterized with respect to the underlying constraint system. The idea is to abstract away from standard semantic objects by focusing on the general properties of any possibly nonstandard  semantic definition. In constraint logic programming, this corresponds to a suitable definition of the constraint system supporting the semantic definition. An algebraic structure is introduced to formalize the notion of a constraint system, thus making classical mathematical results applicable. Both topdown and bottomup semantics are considered. Nonstandard semantics for constraint logic programs can then be formally specified using the same techniques used to define standard semantics. Different nonstandard semantics for constraint logic languages can be specified in this ...
A Primer On Galois Connections
 York Academy of Science
, 1992
"... : We provide the rudiments of the theory of Galois connections (or residuation theory, as it is sometimes called) together with many examples and applications. Galois connections occur in profusion and are wellknown to most mathematicians who deal with order theory; they seem to be less known to to ..."
Abstract

Cited by 29 (3 self)
 Add to MetaCart
: We provide the rudiments of the theory of Galois connections (or residuation theory, as it is sometimes called) together with many examples and applications. Galois connections occur in profusion and are wellknown to most mathematicians who deal with order theory; they seem to be less known to topologists. However, because of their ubiquity and simplicity, they (like equivalence relations) can be used as an effective research tool throughout mathematics and related areas. If one recognizes that a Galois connection is involved in a phenomenon that may be relatively complex, then many aspects of that phenomenon immediately become clear; and thus, the whole situation typically becomes much easier to understand. KEY WORDS: Galois connection, closure operation, interior operation, polarity, axiality CLASSIFICATION: Primary: 06A15, 0601, 06A06 Secondary: 5401, 54B99, 54H99, 68F05 0. INTRODUCTION Mathematicians are familiar with the following situation: there are two "worlds" and t...
Polynomial Constants are Decidable
 In 9th Static Analysis Symposium (SAS
, 2002
"... Abstract. Constant propagation aims at identifying expressions that always yield a unique constant value at runtime. It is wellknown that constant propagation is undecidable for programs working on integers even if guards are ignored as in nondeterministic flow graphs. We show that polynomial con ..."
Abstract

Cited by 24 (6 self)
 Add to MetaCart
Abstract. Constant propagation aims at identifying expressions that always yield a unique constant value at runtime. It is wellknown that constant propagation is undecidable for programs working on integers even if guards are ignored as in nondeterministic flow graphs. We show that polynomial constants are decidable in nondeterministic flow graphs. In polynomial constant propagation, assignment statements that use the operators +, −, ∗ are interpreted exactly but all assignments that use other operators are conservatively interpreted as nondeterministic assignments. We present a generic algorithm for constant propagation via a symbolic weakest precondition computation and show how this generic algorithm can be instantiated for polynomial constant propagation by exploiting techniques from computable ring theory. 1
Galois Connections Presented Calculationally.
, 1992
"... properties of Galois connections 29 4.1 Preorders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.1 Calculating in preorders : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.2 Alternative definitions : : : : : : : : : : : : : : : : : : : : : : : : : 33 4.1.3 Un ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
properties of Galois connections 29 4.1 Preorders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.1 Calculating in preorders : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.2 Alternative definitions : : : : : : : : : : : : : : : : : : : : : : : : : 33 4.1.3 Uniqueness of adjoints in a preorder : : : : : : : : : : : : : : : : : 34 4.2 Partial orders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 35 4.2.1 More cancellation laws : : : : : : : : : : : : : : : : : : : : : : : : : 35 4.2.2 Existence of adjoints : : : : : : : : : : : : : : : : : : : : : : : : : : 36 4.2.3 The closure connection : : : : : : : : : : : : : : : : : : : : : : : : : 40 4.2.4 "Perfect" connections : : : : : : : : : : : : : : : : : : : : : : : : : : 41 4.3 Complete lattices : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 44 i 5 Application: The Domain Operator 47 5.1 Monotypes : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :...
Temporal Algebra
 Mathematical Structures in Computer Science
, 1996
"... This paper is tutorial in style and there are no difficult technical results. To the experts in temporal logics, we hope to convey the simplicity and beauty of algebraic reasoning as opposed to the machineorientedness of logical deduction. To those familiar with the calculational approach to progra ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
This paper is tutorial in style and there are no difficult technical results. To the experts in temporal logics, we hope to convey the simplicity and beauty of algebraic reasoning as opposed to the machineorientedness of logical deduction. To those familiar with the calculational approach to programming, we want to show that their methods extend easily and smoothly to temporal reasoning. For anybody else, this text may serve as a gentle introduction to both areas. 1. Introduction
Between Functions and Relations in Calculating Programs
, 1992
"... This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the `induction' laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by ap...
Comparing completeness properties of static analyses and their logics
 Proc. 2006 Asian Programming Languages and Systems Symposium (APLAS’06), volume 4279 of Lecture Notes in Computer Science
, 2006
"... Abstract. Static analyses calculate abstract states, and their logics validate properties of the abstract states. We place into perspective the variety of forwards, backwards, functional, and logical completeness used in abstractinterpretationbased static analysis by giving examples and by proving ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
Abstract. Static analyses calculate abstract states, and their logics validate properties of the abstract states. We place into perspective the variety of forwards, backwards, functional, and logical completeness used in abstractinterpretationbased static analysis by giving examples and by proving equivalences, implications, and independences. We expose two fundamental Galois connections that underlie the logics for static analyses and reveal a new completeness variant, Ocompleteness. We also show that the key concept underlying logical completeness is covering, which we use to relate the various forms of completeness. When we use a static analysis, like dataflow analysis or model checking, to validate a program for correctness or code improvement, we must carefully define the domain of properties the analysis can calculate so that it includes both the goal properties we seek to validate as well as intermediate properties that lead to the goals. Say we try to validate {?}y: = −y;x: = y +1{isPositive(x)}; our analysis requires properties like isNegative to calculate a sound precondition: