Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

A Library for Self-Adjusting Computation Guy Blelloch2

Summary: A Library for Self-Adjusting Computation
Umut Acar1
Guy Blelloch2
Matthias Blume1
Robert Harper2
Kanat Tangwongsan2
We present a Standard ML library for writing programs that automatically adjust to changes
to their data. The library combines modifiable references and memoization to achieve efficient
updates. We describe an implementation of the library and apply it to the problem of maintaining
the convex hull of a dynamically changing set of points. Our experiments show that the overhead
of the library is small, and that self-adjusting programs can adjust to small changes three-orders
of magnitude faster than recomputing from scratch. The implementation relies on invariants that
could be enforced by a modal type system. We show, using an existing language, abstract interfaces
for modifiable references and for memoization that ensure the same safety properties without the
use of modal types. The interface for memoization, however, does not scale well, suggesting a
language-based approach to be preferable after all.
Keywords: incremental computation, selective memoization, change propagation, computational
geometry, convex hulls, quickhull
In many application domains, such as simulations systems, robotics, lan-


Source: Acar, Umut - Programming Languages and Systems Group, Max-Planck Institute for Software Systems
Blelloch, Guy E. - School of Computer Science, Carnegie Mellon University


Collections: Computer Technologies and Information Sciences