A Type-Safe Structure Editor Calculus + Strictly Capturing Non-Strict Closures
summary
Two short papers: one builds a type-safe editor calculus with cursors, holes, breakpoints and a small-step semantics and gives a behavioral type system (path-indexed contexts, a linear-style split for sequencing) that proves subject reduction and that well-typed edit sequences cannot produce ill-typed ASTs; the calculus is expressive enough to be Turing-complete and is being pushed toward a structure-oriented IDE. The other formalizes closure conversion for non-strict languages, shows correctness requires a strict target (or heap+memo for call-by-need), proposes partial closure conversion for lazy IRs, proves many preservation theorems and leaves a future-heap lemma for full call-by-need completeness.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 0:23Type-safe structure editor calculus
- 2:26Editor calculus with cursors
- 6:20Spatial logic in editor
- 7:48Editor expressions syntax
- 12:05Type safety in edit actions
- 18:06Type system guarantees
- 19:07Results and future work
- 21:14Q&A on editor calculus
- 28:37Strictly capturing non-strict closures
- 30:07Closures in strict languages
- 31:57Non-strict language challenges
- 36:17Call-by-name closure conversion
- 40:13Non-strict data limitations
- 42:42Correctness of call-by-name conversion
- 44:28Target language requirements
- 46:17Call-by-need closure conversion
- 51:23Partial closure conversion
- 53:59Summary and future directions
- 55:06Q&A on closure conversion
- 59:05Session wrap-up
related talks
29mA type safe calculus for generating syntax-directed editors
29mType Inference Techniques: Implementation and Formalization, Better Together
21mGrove: A Bidirectionally Typed Collaborative Structure Editor Calculus
38mType System Foundations for Super-Charged Semantic Code Search
21mTotal Type Error Localization and Recovery with Holes
18mRestructuring Structure Editing
44mHazel: A Live Functional Programming Environment with Typed Holes
22mTowards general white-box automation: a typeclass-guided context cleaner
