Self-Adjusting Computation

Self-adjusting computation allows applications to respond to data changes automatically and efficiently.  The basic abstractions and algorithms for self-adjusting computation were developed in my Ph.D. work.  Subsequent work has extended the foundations to include imperative (effectful) computations, developed programming-languages support, and applied self-adjusting computation to a variety of problems including from algorithms, machine learning, and software systems. 

Publications

Software

  • An earlier implementation that matches the interface and algorithms described in our TOPLAS-2006 paper. Download tar-ball 
  • CEAL extends the C language with support for self-adjusting computation.  Download CEAL.  
  • Delta ML extends the ML language with support for self-adjusting computation. Download DeltaML. 

Funding

  • This research is supported partially by grants from National Science Foundation, Intel Labs, and Microsoft Research.