Many interesting computational problems involve processing data that changes over time, e.g., physical simulations often involve moving objects, networks change as links are added or removed dynamically, a robot may need to re-plan a path to its destination when it encounters a previously unknown obstacle. We research computational models, programming languages, algorithms, and software systems for such dynamic problems. Specifically, we develop the self-adjusting computation model where programs can respond automatically and often efficiently to various modifications to their data.
Languages and Software
The Delta ML and CEAL languages realize self-adjusting computation by extending Standard ML and C languages (respectively). Supporting self-adjusting computations in low-level and high-level languages requires different set of techniques, different compilation strategies, and different run-time systems.