Results 1 
7 of
7
A Finite Presentation Theorem for Approximating Logic Programs
 In Seventeenth Annual ACM Symposium on Principles of Programming Languages
, 1990
"... In program analysis, a key notion used to approximate the meaning of a program is that of ignoring intervariable dependencies. We formalize this notion in logic programming in order to define an approximation to the meaning of a program. The main result proves that this approximation is not only re ..."
Abstract

Cited by 94 (15 self)
 Add to MetaCart
In program analysis, a key notion used to approximate the meaning of a program is that of ignoring intervariable dependencies. We formalize this notion in logic programming in order to define an approximation to the meaning of a program. The main result proves that this approximation is not only recursive, but that it can be finitely represented in the form of a cyclic term graph. This explicit representation can be used as a starting point for logic program analyzers. A preliminary version appears in the Proceedings, 17 th ACM Symposium on POPL. y School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 152133890 z IBM Thomas J. Watson Research Center, PO Box 218, Yorktown Heights, NY 10598 Section 1: Introduction 1 1 Introduction The problem at hand is: given a logic program, obtain an approximation of its meaning, that is, obtain an approximation of its least model. The definition of the approximation should be declarative (so that results can be proved ab...
Automatic Mode Inference for Logic Programs
 Journal of Logic Programming
, 1988
"... In general, logic programs are undirected, i.e. there is no concept of "input" and "output" arguments to a procedure. An argument may be used either as an input or as an output argument, and programs may be executed either in a "forward" direction or in a "backward" direction. However, it is often t ..."
Abstract

Cited by 73 (7 self)
 Add to MetaCart
In general, logic programs are undirected, i.e. there is no concept of "input" and "output" arguments to a procedure. An argument may be used either as an input or as an output argument, and programs may be executed either in a "forward" direction or in a "backward" direction. However, it is often the case that in a given program, a predicate is used with some of its arguments used consistently as input arguments and others as output arguments. Such mode information can be used by a compiler to effect various optimizations. This paper considers the problem of automatically inferring the modes of the predicates in a program. The dataflow analysis we use is more powerful than approaches relying on syntactic characteristics of programs, e.g. [18]. Our work differs from that of Mellish [14, 15] in that (i) we give a sound and efficient treatment of variable aliasing in mode inference; (ii) by propagating instantiation information using state transformations rather than through dependen...
19831993: The Wonder Years of Sequential Prolog Implementation
, 1993
"... This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part ..."
Abstract

Cited by 49 (4 self)
 Add to MetaCart
This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part gives an overview of the important technical developments starting with the Warren Abstract Machine (WAM). The second part presents the history and the contributions of the major software and hardware systems. The third part charts the evolution of Prolog performance since Warren's DEC10 compiler. The fourth part extrapolates current trends regarding the evolution of sequential logic languages, their implementation, and their role in the marketplace.
An Engine for Logic Program Analysis
 Proc. 7 th IEEE Symp. on Logic in Computer Science
, 1992
"... Most logic program analyzers employ a standard approach based on abstract interpretation. At the core of these is a generic algorithm or "engine" which is parameterized by an abstract domain. This standard engine is essentially a fixpoint computation over the abstract semantic equations of a program ..."
Abstract

Cited by 19 (9 self)
 Add to MetaCart
Most logic program analyzers employ a standard approach based on abstract interpretation. At the core of these is a generic algorithm or "engine" which is parameterized by an abstract domain. This standard engine is essentially a fixpoint computation over the abstract semantic equations of a program. This paper presents a new engine which is based on unfolding of semantic equations. A main advantage of the unfolding engine is a uniform treatment of structural information in a program. In particular, reasoning about partially instantiated structures, an area where traditional algorithms have been weak, is greatly enhanced. The main result of this paper shows that our engine is uniformly more accurate than the standard engine in the following sense: given an abstract domain, the output of our engine, for any program, is more accurate than that of the standard engine. 1 Introduction Most algorithms for logic program analysis are based on abstract interpretation, and essentially consist o...
Cousot: On Abstraction
 in Software Verification. Proc. of the CAV
, 2002
"... struction of semanticsbased Abstract interpretation program is analysis a theory algorithms of semantics (sometimes approximation called which \data is ow ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
struction of semanticsbased Abstract interpretation program is analysis a theory algorithms of semantics (sometimes approximation called which \data is ow
SetBased Program Analysis (Extended Abstract)
, 1991
"... ) Nevin Heintze and Joxan Jaffar y 1 January 1991 Summary Program analysis involves approximating the semantics of programs. One important kind of approximation, that of ignoring intervariable dependencies, is widely used for reasons of decidability and efficiency. This paper addresses program ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
) Nevin Heintze and Joxan Jaffar y 1 January 1991 Summary Program analysis involves approximating the semantics of programs. One important kind of approximation, that of ignoring intervariable dependencies, is widely used for reasons of decidability and efficiency. This paper addresses program analysis wherein ignoring intervariable dependencies is the only kind of approximation used. Starting with the collecting semantics of a program, it is shown that there is a natural formalization of this approximation in which program variables are associated with sets of values. Further, this formalization is applicable to both the imperative and logic programming paradigms. An algorithm is then presented which inputs an imperative or logic program and constructs an explicit representation of its approximate semantics. It therefore provides the most accurate analysis possible, given that intervariables dependencies are ignored during analysis. School of Computer Science, Carnegie Mellon ...
Assessment of a Storage Optimisation Tool for AKL
"... Using a framework for analysis of programs in the concurrent constraint logic programming language AKL and a domain which provides information on possible bindings, we devised a method to identify reusable structures. ..."
Abstract
 Add to MetaCart
Using a framework for analysis of programs in the concurrent constraint logic programming language AKL and a domain which provides information on possible bindings, we devised a method to identify reusable structures.