4 citations · 4 across the 5 of their papers we have counts for
6 papers · 1 filter
Bidirectional Type Slicing
Max Carroll, Anil Madhavapeddy, Cyrus Omar
Development tools report what type an expression has, but not why it has that type. This paper develops a theory of type slicing: a programmer selects a term, queries any part of i…
Practical Algebraic Stepping with Scoped Filters
Haoxiang Fei, Matthew Keenan, Cyrus Omar
Algebraic steppers help students learn functional programming by displaying evaluation as a sequence of small-step reductions, but even simple programs produce long traces in which…
Incremental Live Programming via Shortcut Memoization
Marisa Kirisame, Thomas J. Porter, Ruqing Yang +5
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 computatio…
Syntactic Completions with Material Obligations
David Moon, Andrew Blinn, Thomas J. Porter +1
Code editors provide essential services that help developers understand, navigate, and modify programs. However, these services often fail in the presence of syntax errors. Existin…
Incremental Bidirectional Typing via Order Maintenance
Thomas J. Porter, Marisa Kirisame, Ivan Wei +2
Live programming environments provide various semantic services, including type checking and evaluation, continuously as the user is editing the program. The live paradigm promises…
Statically Contextualizing Large Language Models with Typed Holes
Andrew Blinn, Xiang Li, June Hyung Kim +1
Large language models (LLMs) have reshaped the landscape of program synthesis. However, contemporary LLM-based code completion systems often hallucinate broken code because they la…