This thesis proposes a programming system that improves domain-specific notation creation and integration for programmers, enhancing their coding experience.
Programs are composed of abstractions of multiple domains. Communicating these domain-specific abstractions through textual code is often a compromise. Domain-specific notations promise to match abstractions to domains better. However, only a few programming systems support authors in creating domain-specific notations and composing them in a single view. We observe two mismatches with code, especially in its textual representation: the parsing--object identity mismatch describes that text must be parsed after every change to derive objects that represent the program structure, while reliable notation composition requires objects with stable identities. The program tree--domain mismatch describes the challenge of deriving domain concerns from the program tree generated by the parser. In this thesis, we propose a programming system designed for the recursive composition of domain-specific notations with each other and especially with code. We propose two approaches that address the parsing--object identity mismatch by immediately reconciling changes to code with the existing program tree objects. The first, partial parsing, presents a novel structured editing interface that is derived automatically from grammars and thus available across languages. The second, hybrid structured editing, builds on existing text editors and selectively preserves program tree objects, guided by constraints that domain-specific notations define. For the program tree--domain mismatch, our system offers an authoring framework for domain-specific notations that provides abstractions for deriving domain concerns from the program tree. It supports authors in modifying the original code in conformance with syntax, querying for code patterns, accessing live values, and embedding code in their notation's user interface. We evaluate our programming system through case studies and a user study of the novel structured editing interface. We conclude that our proposed concepts allow maintaining a consistent and familiar editing experience for programmers while addressing the complexity that authors of domain-specific notations face. Our proposed concepts thus form a basis for more widespread creation and integration of domain-specific notations in programming systems, allowing programmers to express programs closer to their problem domain.
No takes yet. Share an insight, caveat, or question.
Tom Beckmann (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: