cs@parma

Home

People

Projects

Publications

Seminars

Software

Links

Boolean Functions for Finite-Tree Dependencies (TR)

Roberto Bagnara, Enea Zaffanella, Roberta Gori, and Patricia M. Hill

Abstract

Several logic-based languages, such as Prolog II and its successors, SICStus Prolog and Oz, offer a computation domain including rational trees. Infinite rational trees allow for increased expressivity (cyclic terms can provide efficient representations of grammars and other useful objects) and for faster unification (due to the safe omission of the occurs-check). Unfortunately, the use of infinite rational trees has problems. For instance, many of the built-in and library predicates are ill-defined for such trees and need to be supplemented by run-time checks whose cost may be significant. In a companion paper [1] we have proposed a data-flow analysis aimed at the knowledge of those program variables (the finite variables) that will always be bound to finite terms. The analysis domain introduced in [1] correctly captures the creation and propagation of cyclic terms, but is not capable of propagating the guarantees of finiteness that come from built-in predicates and program annotations. Here we present a domain of Boolean functions that precisely captures how the finiteness of some variables influences the finiteness of other variables. This domain of finite-tree dependencies provides relational information that is important for the precision of the overall finiteness analysis. It also combines obvious similarities, interesting differences and somewhat unexpected connections with classical domains for groundness dependencies.

References

1
R. Bagnara, R. Gori, P. M. Hill, and E. Zaffanella.
Finite-Tree Analysis for Constraint Logic-Based Languages.
Quaderno 251, Dipartimento di Matematica, Università di Parma, 2001.


Available: PDF, 300 DPI, 600 DPI, and 1200 DPI PostScript, DVI, and BibTeX entry.

[Page last updated on January 14, 2002, 11:24:10.]

Page maintained by
Enea Zaffanella

Home | People | Projects | Publications | Seminars | Software | Links