Incremental Live Programming via Shortcut Memoization

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Kirisame, Marisa, Porter, Thomas J., Yang, Ruqing, Zhao, Jianqiu, Wu, Yudi, Wei, Ivan, Omar, Cyrus, Panchekha, Pavel
Format: Preprint
Published: 2026
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866914410135552000
author Kirisame, Marisa
Porter, Thomas J.
Yang, Ruqing
Zhao, Jianqiu
Wu, Yudi
Wei, Ivan
Omar, Cyrus
Panchekha, Pavel
author_facet Kirisame, Marisa
Porter, Thomas J.
Yang, Ruqing
Zhao, Jianqiu
Wu, Yudi
Wei, Ivan
Omar, Cyrus
Panchekha, Pavel
contents 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, expressed as a CEK machine, in Chordata, and develop a number of practical heuristics to learn high-value shortcuts. We evaluate the resulting system on editing traces of students solving simple programming problems. Chordata achieves a speedup of 13.03\times compared to baseline with a 19.97\times memory overhead. For smaller changes and for more complex programs, Chordata achieves even greater speedups. Furthermore, we show that Chordata is capable of providing a speedup even within a single execution, with a faster speedup on a larger input.
format Preprint
id arxiv_https___arxiv_org_abs_2603_19560
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Incremental Live Programming via Shortcut Memoization
Kirisame, Marisa
Porter, Thomas J.
Yang, Ruqing
Zhao, Jianqiu
Wu, Yudi
Wei, Ivan
Omar, Cyrus
Panchekha, Pavel
Programming Languages
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, expressed as a CEK machine, in Chordata, and develop a number of practical heuristics to learn high-value shortcuts. We evaluate the resulting system on editing traces of students solving simple programming problems. Chordata achieves a speedup of 13.03\times compared to baseline with a 19.97\times memory overhead. For smaller changes and for more complex programs, Chordata achieves even greater speedups. Furthermore, we show that Chordata is capable of providing a speedup even within a single execution, with a faster speedup on a larger input.
title Incremental Live Programming via Shortcut Memoization
topic Programming Languages
url https://arxiv.org/abs/2603.19560