Results 1 - 10
of
18
Set-Sharing is Redundant for Pair-Sharing
- Theoretical Computer Science
, 1997
"... . Although the usual goal of sharing analysis is to detect which pairs of variables share, the standard choice for sharing analysis is a domain that characterizes set-sharing. In this paper, we question, apparently for the first time, whether this domain is over-complex for pair-sharing analysis. We ..."
Abstract
-
Cited by 22 (11 self)
- Add to MetaCart
. Although the usual goal of sharing analysis is to detect which pairs of variables share, the standard choice for sharing analysis is a domain that characterizes set-sharing. In this paper, we question, apparently for the first time, whether this domain is over-complex for pair-sharing analysis. We show that the answer is yes. By defining an equivalence relation over the set-sharing domain we obtain a simpler domain, reducing the complexity of the abstract unification procedure. We present preliminary experimental results, showing that, in practice, our domain compares favorably with the set-sharing one over a wide range of benchmark programs. 1 Introduction In logic programming, a knowledge of sharing between variables is important for optimizations such as the exploitation of parallelism. Today, talking about sharing analysis for logic programs is almost the same as talking about the set-sharing domain Sharing of Jacobs and Langen [11,12]. The adequacy of this domain is not norma...
An Algebraic Approach to Sharing Analysis of Logic Programs
- Journal of Logic Programming
, 1997
"... This paper describes an algebraic approach to the sharing analysis of logic programs based on an abstract domain of set logic programs. Set logic programs are logic programs in which the terms are sets of variables and unification is based on an associative, commutative, and idempotent equality theo ..."
Abstract
-
Cited by 16 (7 self)
- Add to MetaCart
This paper describes an algebraic approach to the sharing analysis of logic programs based on an abstract domain of set logic programs. Set logic programs are logic programs in which the terms are sets of variables and unification is based on an associative, commutative, and idempotent equality theory. All of the basic operations required for sharing analyses, as well as their formal justification, are based on simple algebraic properties of set substitutions and set-based atoms. An ordering on set-based syntactic objects, similar to "less general" on concrete syntactic objects, is shown to reflect the notion of "less sharing" information. The (abstract) unification of a pair of set-based terms corresponds to finding their most general ACI1 unifier with respect to this ordering. The unification of a set of equations between set-based terms is defined exactly as in the concrete case, by solving the equations one by one and repeatedly applying their solutions to the remaini...
A Synergistic Analysis for Sharing and Groundness which traces Linearity
- Proceedings of the Fifth European Symposium on Programming, volume 788 of Lecture Notes in Computer Science
, 1994
"... . Accurate variable sharing information is crucial both in the automatic parallelisation and in the optimisation of sequential logic programs. Analysis for possible variable sharing is thus an important topic in logic programming and many analyses have been proposed for inferring dependencies betwee ..."
Abstract
-
Cited by 15 (1 self)
- Add to MetaCart
. Accurate variable sharing information is crucial both in the automatic parallelisation and in the optimisation of sequential logic programs. Analysis for possible variable sharing is thus an important topic in logic programming and many analyses have been proposed for inferring dependencies between the variables of a program, for instance, by combining domains and analyses. This paper develops the combined domain theme by explaining how term structure, and in particular linearity, can be represented in a sharing group format. This enables aliasing behaviour to be more precisely captured; groundness information to be more accurately propagated; and in addition, refines the tracking and application of linearity. In practical terms, this permits aliasing and groundness to be inferred to a higher degree of accuracy than in previous proposals and also can speed up the analysis itself. Correctness is formally proven. 1 Introduction Abstract interpretation for possible sharing is an import...
The Correctness of Set-Sharing
, 1998
"... interpretation provides a sound mathematical framework. Moreover, in logic programming, necessary generic properties for an abstract domain to be well-defined and sound with respect to the concrete semantics have been identified. Sharing is an abstract domain that is a standard choice for sharing an ..."
Abstract
-
Cited by 8 (7 self)
- Add to MetaCart
interpretation provides a sound mathematical framework. Moreover, in logic programming, necessary generic properties for an abstract domain to be well-defined and sound with respect to the concrete semantics have been identified. Sharing is an abstract domain that is a standard choice for sharing analysis for both practical work and further theoretical study. In spite of this, we found that there are no satisfactory proofs for the key properties of commutativity and idempotence that are essential for Sharing to be well-defined and that published statements of the safeness property assumed the occur-check. This paper provides a generalisation of the abstraction function for Sharing that can be applied to any language, with or without the occur-check. The results for safeness, idempotence and commutativity for abstract unification using this abstraction function are given.
On the Design of a Correct Freeness Analysis for Logic Programs
, 1996
"... Several proposals for computing freeness information for logic programs have been put forward in recent literature. The availability of such information has proven useful in a variety of applications, including parallelization of Prolog programs, optimizations in Prolog compilers, as well as for imp ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
Several proposals for computing freeness information for logic programs have been put forward in recent literature. The availability of such information has proven useful in a variety of applications, including parallelization of Prolog programs, optimizations in Prolog compilers, as well as for improving the precision of other analyses. While these proposals have illustrated the importance of such analyses, they lack formal justification. Moreover, several have been found incorrect. This paper introduces a novel domain of abstract equation systems describing possible sharing and definite freeness of terms in a system of equations. A simple and intuitive abstract unification algorithm is presented, providing the core of a correct and precise sharing and freeness analysis for logic programs. Our contribution is not only a correct algorithm, but perhaps primarily, the application of a systematic approach in which it is derived by mimicking each step in a suitable concrete unification al...
Enhanced Sharing Analysis Techniques: A Comprehensive Evaluation
, 2000
"... Sharing, a domain due to D. Jacobs and A. Langen for the analysis of logic programs, derives useful aliasing information. It is well-known that a commonly used core of techniques, such as the standard integration of Sharing with freeness and linearity information, can significantly improve the preci ..."
Abstract
-
Cited by 8 (5 self)
- Add to MetaCart
Sharing, a domain due to D. Jacobs and A. Langen for the analysis of logic programs, derives useful aliasing information. It is well-known that a commonly used core of techniques, such as the standard integration of Sharing with freeness and linearity information, can significantly improve the precision of Sharing. However, a number of other proposals for refined domain combinations have been circulating for years. One feature that is common to these proposals is that they do not seem to have undergone a thorough experimental evaluation even with respect to the expected precision gains. In this paper, we discuss and/or experimentally evaluate: helping Sharing with definitely ground variables computed with Pos; the incorporation of explicit structural information into the domain of analysis; more sophisticated ways of integrating Sharing and Pos; the issue of reordering the bindings in the computation of the abstract mgu; an original proposal concerning the addition of a domain recordin...
A Correct, Precise and Efficient Integration of Set-Sharing, Freeness and Linearity for the Analysis of Finite and Rational Tree Languages
- THEORY AND PRACTICE OF LOGIC PROGRAMMING
, 2004
"... It is well-known that freeness and linearity information positively interact with aliasing information, allowing both the precision and the efficiency of the sharing analysis of logic programs to be improved. In this paper we present a novel combination of set-sharing with freeness and linearity inf ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
It is well-known that freeness and linearity information positively interact with aliasing information, allowing both the precision and the efficiency of the sharing analysis of logic programs to be improved. In this paper we present a novel combination of set-sharing with freeness and linearity information, which is characterized by an improved abstract unification operator. We provide a new abstraction function and prove the correctness of the analysis for both the finite tree and the rational tree cases. Moreover, we show that the same notion of redundant information as identified in (Bagnara et al. 2002; Zaffanella et al. 2002) also applies to this abstract domain combination: this allows for the implementation of an abstract unification operator running in polynomial time and achieving the same precision on all the considered observable properties.
A Composite Domain for Freeness, Sharing, and Compoundness Analysis of Logic Programs
- Department of Computer Science
, 1994
"... Accurate sharing and freeness properties of program variables have been inferred in the past by means of combined dataflow analyses of logic programs. Groundness, linearity, and structural information must be taken into account in order to obtain sufficient precision. Abstract equation systems are o ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
Accurate sharing and freeness properties of program variables have been inferred in the past by means of combined dataflow analyses of logic programs. Groundness, linearity, and structural information must be taken into account in order to obtain sufficient precision. Abstract equation systems are one of the formalisms previously proposed to represent all these properties of the runtime values of program variables. The present work is concerned with the specification of correct and practical operations on the domain of abstract equation systems, which constitute a prerequisite for the domain to be suited for an implementation in the framework of abstract interpretation. The main technical contribution of the paper is the presentation of a novel and powerful algorithm for resolving an abstract equation system, the formal proof of its correctness, and a study of the invariance of certain linearity and freeness properties under the application of relevant most general unifiers. Keywords: Logic programming, abstract interpretation, mode analysis. 1
A Freeness and Sharing Analysis of Logic Programs Based on a Pre-interpretation
, 1996
"... . Recently, a technique was presented for using pre-interpretations for abstract interpretation of the correct answer set CP of a logic program P . So far it was an open problem whether pre-interpretations could also be used for deriving non-downward closed properties of the computed answer set OP s ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
. Recently, a technique was presented for using pre-interpretations for abstract interpretation of the correct answer set CP of a logic program P . So far it was an open problem whether pre-interpretations could also be used for deriving non-downward closed properties of the computed answer set OP such as definite freeness. This paper shows that it is possible to do so. 1 Introduction Cousot and Cousot [13, 14] have developed a widely applicable framework for abstract interpretation and obtained the following basic result: if an abstract operator ¯ A over an abstract domain Dom A of data descriptions fl-approximates a corresponding concrete operator ¯ C over a concrete domain Dom C of data elements, and both operators are monotonic functions, then the fixpoints of both operators are such that lfp(¯ A ) fl-approximates lfp(¯ C ). For logic programs, the concrete operator ¯ C can be a bottom-up semantic function or a top-down one. In both cases, the execution essentially...

