Pantograph: A Fluid and Typed Structure Editor
Jacob Prinz, Henry Blanchette, Leonidas Lampropoulos
摘要
Structure editors operate directly on a program's syntactic tree structure. At first glance, this allows for the exciting possibility that such an editor could enforce correctness properties: programs could be well-formed and sometimes even well-typed by construction. Unfortunately, traditional approaches to structure editing that attempt to rigidly enforce these properties face a seemingly fundamental problem, known in the literature as viscosity. Making changes to existing programs often requires temporarily breaking program structure-but disallowing such changes makes it difficult to edit programs!
In this paper, we present a scheme for structure editing which always maintains a valid program structure without sacrificing the fluidity necessary to freely edit programs. Two key pieces help solve this puzzle: first, we develop a novel generalization of selection for tree-based structures that properly generalizes text-based selection and editing, allowing users to freely rearrange pieces of code by cutting and pasting one-hole contexts; second, we type these one-hole contexts with a category of type diffs and explore the metatheory of the system that arises for maintaining well-typedness systematically. We implement our approach as an editor called Pantograph, and we conduct a study in which we successfully taught students to program with Pantograph and compare their performance against a traditional text editor.
CCS Concepts: • Software and its engineering → General programming languages; • Theory of computation → Type theory.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper1
问问它们各自怎么用它它引用的顶会 Paper1
相关 Paper
- Syntactic Completions with Material ObligationsDavid Moon, Andrew Blinn, Thomas Porter, Cyrus OmarOOPSLA 2025
- Grove: A Bidirectionally Typed Collaborative Structure Editor CalculusMichael D. Adams, Eric Griffis, Thomas Porter, Sundara Vishnu Satish 等POPL 2025 · 被引用 3 次
- Learning Structural Edits via Incremental Tree TransformationsZiyu Yao, Frank F. Xu, Pengcheng Yin, Huan Sun 等ICLR 2021 · 被引用 32 次
- From Characters to Structure: Rethinking Real-Time Collaborative Programming ModelsLeon Freudenthaler, Bernhard Taufner, Karl Michael GöschkaASE 2025
- Structured Editing for All: Deriving Usable Structured Editors from GrammarsTom Beckmann, Patrick Rein, Stefan Ramson, Joana Bergsiek 等CHI 2023 · 被引用 21 次
