| | |
Summary: Orderofevaluation Analysis for Destructive Updates in Strict Functional
Languages with Flat Aggregates
A.V.S. Sastry, William Clinger and Zena Ariola
Department of Computer Science
University of Oregon
Eugene, OR, 97403
email: [sastry, will, ariola]@cs.uoregon.edu
Abstract
The aggregate update problem in functional languages is
concerned with detecting cases where a functional array up
date operation can be implemented destructively in constant
time. Previous work on this problem has assumed a fixed
order of evaluation of expressions. In this paper, we devise a
simple analysis, for strict functional languages with flat ag
gregates, that derives a good order of evaluation for making
the updates destructive. Our work improves Hudak's work
[14] on abstract reference counting, which assumes fixed or
der of evaluation and uses the domain of sticky reference
counts. Our abstract reference counting uses a 2point do
main. We show that for programs with no aliasing, our anal
|