Results 1  10
of
32
Compiletime Derivation of Variable Dependency Using Abstract Interpretation
 Journal of Logic Programming
, 1992
"... Traditional schemes for abstract interpretationbased global analysis of logic programs generally focus on obtaining procedure argument mode and type information. Variable sharing information is often given only the attention needed to preserve the correctness of the analysis. However, such sharing ..."
Abstract

Cited by 124 (41 self)
 Add to MetaCart
(Show Context)
Traditional schemes for abstract interpretationbased global analysis of logic programs generally focus on obtaining procedure argument mode and type information. Variable sharing information is often given only the attention needed to preserve the correctness of the analysis. However, such sharing information can be very useful. In particular, it can be used for predicting runtime goal independence, which can eliminate costly runtime checks in andparallel execution. In this paper, a new algorithm for doing abstract interpretation in logic programs is described which concentrates on inferring the dependencies of the terms bound to program variables with increased precision and at all points in the execution of the program, rather than just at a procedure level. Algorithms are presented for computing abstract entry and success substitutions which extensively domain independent fixpoint algorithm is presented and described in detail. The algorithms are illustrated with examples. Finally, results from an implementation of the abstract interpreter are presented. 1
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 123 (28 self)
 Add to MetaCart
(Show Context)
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.
Global Flow Analysis as a Practical Compilation Tool
 Journal of Logic Programming
, 1992
"... This paper addresses the issue of the practicality of global flow analysis in logic program compilation, in terms of speed of the analysis, precision, and usefulness of the information obtained. To this end, design and implementation aspects are discussed for two practical abstract interpretation ..."
Abstract

Cited by 80 (21 self)
 Add to MetaCart
(Show Context)
This paper addresses the issue of the practicality of global flow analysis in logic program compilation, in terms of speed of the analysis, precision, and usefulness of the information obtained. To this end, design and implementation aspects are discussed for two practical abstract interpretationbased flow analysis systems: MA 3 , the MCC Andparallel Analyzer and Annotator; and Ms, an experimental mode inference system developed for SBProlog. The paper also provides performance data obtained from these implementations and, as an example of an application, a study of the usefulness of the mode information obtained in reducing runtime checks in independent andparallelism. Based on the results obtained, it is concluded that the overhead of global flow analysis is not prohibitive, while the results of analysis can be quite precise and useful. 1 Introduction The extensive use of advanced compilation techniques [8, 22, 30, 32, 33, 34], coupled with parallel execution [5, 10,...
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 79 (27 self)
 Add to MetaCart
(Show Context)
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 62 (16 self)
 Add to MetaCart
(Show Context)
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.
Precise and Efficient Groundness Analysis for Logic Programs
 ACM LETTERS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1993
"... We show how precise groundness information can be extracted from logic programs. The idea is to use abstract interpretation with Boolean functions as "approximations" to groundness dependencies between variables. This idea is not new, and different classes of Boolean functions have been us ..."
Abstract

Cited by 59 (3 self)
 Add to MetaCart
We show how precise groundness information can be extracted from logic programs. The idea is to use abstract interpretation with Boolean functions as "approximations" to groundness dependencies between variables. This idea is not new, and different classes of Boolean functions have been used. We argue, however, that one class, the positive functions is more suitable than others. Positive Boolean functions have a certain property which we (inspired by A. Langen) call "condensation." This property allows for rapid computation of groundness information.
Deriving Polymorphic Type Dependencies for Logic Programs Using Multiple Incarnations of Prop
, 1994
"... . This paper illustrates the application of abstract compilation using multiple incarnations of the domain Prop in deriving type dependencies for logic programs. We illustrate how dependencies can be derived in the presence of both monomorphic and polymorphic type information. Type dependencies gene ..."
Abstract

Cited by 40 (9 self)
 Add to MetaCart
(Show Context)
. This paper illustrates the application of abstract compilation using multiple incarnations of the domain Prop in deriving type dependencies for logic programs. We illustrate how dependencies can be derived in the presence of both monomorphic and polymorphic type information. Type dependencies generalize the recently proposed notion of directional types as well as the more common notion of groundness dependencies. Directional types have proven useful in a number of applications such as in proving termination. These applications, however, are based on type declarations. The main contribution of this paper is in the simplicity in which nontrivial type dependencies are inferred using abstract compilation and by associating each type with an incarnation of Prop. We illustrate the use of a semantics for open logic programs in maintaining space efficient analyses. Time efficiency is also maintained due to approximation of the type domain in a boolean lattice calling on results of universal...
On the Complexity of Dataflow Analysis of Logic Programs
, 1992
"... This article reports some results on this correlation in the context of logic programs. A formal notion of the "precision" of an analysis algorithm is proposed, and this is used to characterize the worstcase computational complexity of a number of dataflow analyses with different degrees ..."
Abstract

Cited by 35 (4 self)
 Add to MetaCart
This article reports some results on this correlation in the context of logic programs. A formal notion of the "precision" of an analysis algorithm is proposed, and this is used to characterize the worstcase computational complexity of a number of dataflow analyses with different degrees of precision. While this article considers the analysis of logic programs, the technique proposed, namely the use of "exactness sets" to study relationships between complexity and precision of analyses, is not specific to logic programming in any way, and is equally applicable to flow analyses of other language families.
Some LowLevel Source Transformations for Logic Programs
 in Proceedings of Meta90 Workshop on Meta Programming in Logic
, 1990
"... This paper describes an algorithm performing an analysis and transformation of logic programs. The transformation achieves two goals: redundant functors are removed from the program, and procedures may be split into two or more specialised versions handling different cases. It can be applied to most ..."
Abstract

Cited by 32 (10 self)
 Add to MetaCart
(Show Context)
This paper describes an algorithm performing an analysis and transformation of logic programs. The transformation achieves two goals: redundant functors are removed from the program, and procedures may be split into two or more specialised versions handling different cases. It can be applied to most logic programming languages, including concurrent logic programming languages, because the transformations perform no unfolding of the program; they only remove some redundant operations within the unifications. The main saving is in heap usage, though time performance may also be improved. One of the main purposes of the transformation is to “clean up ” programs generated by other methods of transformation or synthesis. The analysis is an example of an abstract interpretation, and is guaranteed to terminate. A Prolog implementation of the algorithm, illustrating some metaprogramming techniques, is given and some results are reported.