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...

Full description

Saved in:
Bibliographic Details
Published inScience of computer programming Vol. 98; pp. 589 - 616
Main Author Clark, Tony
Format Journal Article
LanguageEnglish
Published Elsevier B.V 01.02.2015
Subjects
Online AccessGet full text

Cover

Loading…
More Information
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