Published in

Springer Verlag, Lecture Notes in Computer Science, p. 301-316

DOI: 10.1007/978-3-540-89982-2_30

Links

Tools

Export citation

Search in Google Scholar

Negative Ternary Set-Sharing

This paper is available in a repository.
This paper is available in a repository.

Full text: Download

Green circle
Preprint: archiving allowed
Green circle
Postprint: archiving allowed
Red circle
Published version: archiving forbidden
Data provided by SHERPA/RoMEO

Abstract

The Set-Sharing domain has been widely used to infer at compile- time interesting properties of logic programs such as occurs-check reduction, automatic parallelization, and finite-tree analysis. However, performing a bstract unification in this domain requires a closure operation that increases the nu mber of sharing groups exponentially. Much attention has been given to mitigating this key inefficiency in this otherwise very useful domain. In this paper we pr esent a novel approach to Set-Sharing: we define a new representation that le verages the complement (or negative) sharing relationships of the original shar ing set, without loss of accuracy. Intuitively, given an abstract state shV over the finite set of variables of interest V, its negative representation is }(V)\ shV . Using this encoding during analysis dramatically reduces the number of elements that need to be represented in the abstract states and during abstract unifica tion as the cardinality of the original set grows toward 2|V|. To further compress the num- ber of elements, we express the set-sharing relationships through a set of ternary strings that compacts the representation by eliminating redundancies among the sharing sets. Our experiments show that our approach can compress the number of relationships, reducing significantly the memory usage and running time of all abstract operations, including abstract unification.