Results 1 
9 of
9
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 97 (15 self)
 Add to MetaCart
(Show Context)
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 ..."
Abstract

Cited by 74 (7 self)
 Add to MetaCart
(Show Context)
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 50 (4 self)
 Add to MetaCart
(Show Context)
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.
Notes for a Tutorial on Abstract Interpretation of Logic Programs
 North American Conference on Logic Programming
, 1989
"... The present notes are concerned with semanticsbased dataflow analysis of definite clause logic programs. They have been produced for a tutorial given by the authors to the North American Conference on Logic Programming in Cleveland, Ohio, 16 October 1989. Thenotes are a condensed version of two for ..."
Abstract

Cited by 22 (3 self)
 Add to MetaCart
(Show Context)
The present notes are concerned with semanticsbased dataflow analysis of definite clause logic programs. They have been produced for a tutorial given by the authors to the North American Conference on Logic Programming in Cleveland, Ohio, 16 October 1989. Thenotes are a condensed version of two forthcoming papers [33, 36]. Proofs omitted here appear in these papers. In Section 1 we give a brief introduction and historical background to the subject. In Section 2 we introduce some preliminary notation. In Section 3 we give a general theory for dataflow analysis which is basically that of abstract interpretation as introduced by P. and R. Cousot. We develop a simple abstract interpretation based on the wellknown TP semantics of definite clause programs. In Section 4 we consider the abstract interpretation of definite clause logic programs and detail its uses. We discuss the limitations of dataflow analyses which are based on either the TP or SLD semantics of logic programs and develop a denotational semantics which may be used as a basis for most existing dataflow analyses. In Section 5 a nontrivial dataflow analysis for groundness propagation is developed from the denotational definitions given in Section 4. 1
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 ..."
Abstract

Cited by 19 (9 self)
 Add to MetaCart
(Show Context)
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...
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.
{ ' 1991 Kluwer Academic Publishers. Printed in the Netherlands. Compiling Bottomup and Mixed Derivations into Topdown Executable Logic Programs*
, 1989
"... Abstract. We present a techmque for the compilation of bottomup and m~xed logic derlvatmns into PROLOGprograms It is obtained as an extension of a program transformation technique called Compd#1g Control. We illustrate its applications m three different domains: solving numerical problems, integri ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. We present a techmque for the compilation of bottomup and m~xed logic derlvatmns into PROLOGprograms It is obtained as an extension of a program transformation technique called Compd#1g Control. We illustrate its applications m three different domains: solving numerical problems, integrity checking in deductive databases and theorem proving The aim is to obtain efficient PROLOG programs for problems in which a nontopdown control is most appropriate. Key words. Control rules, transformation, logic programming. I.