SEJun 10, 2015

A General Architecture for Heterogeneous Language Engineering and Projectional Editor Support

arXiv:1506.03398v1
AI Analysis

This work addresses the problem of language engineering tooling for developers by proposing a novel architecture, though it appears incremental as it builds on existing projectional editor concepts.

The paper tackles the challenge of tool support for language engineering by introducing a projectional meta-tool architecture that prioritizes abstract over concrete syntax, using declarative rules to integrate syntax and tool support for heterogeneous languages, and it has been implemented in Racket with concrete examples.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes