English

A General Architecture for Heterogeneous Language Engineering and Projectional Editor Support

Software Engineering 2015-06-11 v1

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.

Keywords

Cite

@article{arxiv.1506.03398,
  title  = {A General Architecture for Heterogeneous Language Engineering and Projectional Editor Support},
  author = {Tony Clark},
  journal= {arXiv preprint arXiv:1506.03398},
  year   = {2015}
}
R2 v1 2026-06-22T09:51:13.602Z