Incremental Live Programming via Shortcut Memoization
Marisa Kirisame, Thomas J. Porter, Ruqing Yang, Jianqiu Zhao, Yudi Wu, Ivan Wei, Cyrus Omar, Pavel Panchekha

TL;DR
This paper presents Chordata, an incremental interpreter using shortcut memoization that learns and reuses computation patterns to significantly speed up live programming updates, especially for large or complex programs.
Contribution
It introduces a formal semantics for shortcut memoization, implements it in a live programming system, and demonstrates substantial speedups in program execution and editing.
Findings
Achieves a 13.03× speedup over baseline.
Provides a 19.97× memory overhead.
Effective for small changes and complex programs.
Abstract
Live programming systems aim to quickly show programmers the dynamic impacts of program edits. To do so, they re-execute the program whenever it is edited, which poses a computational challenge when programs become large or complex. This has led to the need for incrementality in the implementation of live program interpreters. This paper introduces Chordata, an incremental program interpreter based on shortcut memoization, which learns repeated patterns of computation, called shortcuts, by observing executions of previous versions of a program. It can then apply these shortcuts when the same or a structurally similar program fragment is re-executed. This paper contributes a formal semantics of shortcut memoization for any language with a rewrite-based semantics, with mechanized proofs of key correctness properties. We then express a variant of the Hazel live programming system,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsTeaching and Learning Programming · Logic, programming, and type systems · Software Testing and Debugging Techniques
