XPL: A language for modular homogeneous language embedding
Languages that are used for Software Language Engineering (SLE) offer a range of features that support the construction and deployment of new languages. SLE languages offer features for constructing and processing syntax and defining the semantics of language features. New languages may be embedded...
Saved in:
Published in | Science of computer programming Vol. 98; pp. 589 - 616 |
---|---|
Main Author | |
Format | Journal Article |
Language | English |
Published |
Elsevier B.V
01.02.2015
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Languages that are used for Software Language Engineering (SLE) offer a range of features that support the construction and deployment of new languages. SLE languages offer features for constructing and processing syntax and defining the semantics of language features. New languages may be embedded within an existing language (internal) or may be stand-alone (external). Modularity is a desirable SLE property for which there is no generally agreed approach. This article analyses the current tools for SLE and identifies the key features that are common. It then proposes a language called XPL that supports these features. XPL is higher-order and allows languages to be constructed and manipulated as first-class elements and therefore can be used to represent a range of approaches to modular language definition. This is validated by using XPL to define the notion of a language module that supports modular language construction and language transformation.
•A new meta-language for defining languages is proposed.•The meta-language supports modular definition of both syntax and semantics.•New languages can be embedded in the host language.•Patterns of definition are shown to support language composition, transformation and extension. |
---|---|
ISSN: | 0167-6423 1872-7964 |
DOI: | 10.1016/j.scico.2014.08.005 |