Programming language theory
Incremental Computation Visualizer
An online visualization tool for the paper 'Fungi: Typed incremental computation with names.'
Related role: Research Assistant at University of Colorado Boulder, College of Engineering & Applied Science
Built an interactive visualization tool in Rust to accompany research on typed incremental computation with names. The project made the programming language output explorable in a browser.
Incremental computations reuse work that is unaffected when their inputs change. To do this in a general-purpose language, programmers need a way to identify which dynamic allocations (data and subcomputations) correspond across runs. Fungi, a typed functional language by Matthew A. Hammer, Jana Dunfield, Kyle Headley, Monal Narasimhamurthy, and Dimitrios J. Economou, makes these names formal and statically verifiable. Its type-and-effect system lets programmers encode local invariants about names and use them to prove global uniqueness, meaning names are used correctly. The paper proves that well-typed Fungi programs respect global uniqueness, and a Rust prototype of the language was applied to a library of incremental collections.
The visualizer lets readers step through Fungi programs and inspect their incremental behavior directly in the browser, instead of reading only the formal semantics.
