A General Architecture for Heterogeneous Language Engineering and Projectional Editor Support (1506.03398v1)
Abstract: Tool support for language engineering has typically prioritises concrete syntax over abstract syntax by providing meta-languages for expressing concrete syntax and then mapping concrete to abstract structures. Text-based languages are usually specified using a BNF-like language used to generate a syntax-aware editor that includes features such as keyword completion. Similarly, graphical languages are defined using a declarative graphical syntax language, producing an editor that supports features such as shapes, graphs and edges. Projectional editors invert traditional approaches by prioritising abstract over concrete syntax. This paper describes a projectional meta-tool architecture, including general purpose abstract and concrete meta-languages, that uses declarative rules to integrate the syntax and tool support for a range of heterogeneous languages. The architecture has been implemented in Racket and the paper illustrates the architecture with concrete examples.
Collections
Sign up for free to add this paper to one or more collections.
Paper Prompts
Sign up for free to create and run prompts on this paper using GPT-5.