Flexmi: a generic and modular textual syntax for domain-specific modelling

Dimitris Kolovos, Alfonso de la Vega*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

Abstract

Domain-specific languages allow engineers and domain experts to express problems and design solutions using domain-focused vocabularies and abstractions, by means of graphical or textual syntaxes. In the case of textual syntaxes, language engineers can opt for creating a language-specific syntax by defining and maintaining a BNF-style grammar, or use an existing general-purpose reflective syntax such as the XML Metadata Interchange (XMI) or the Human Usable Textual Notation (HUTN), which do not require any development and maintenance effort, but which are more verbose and cannot be customised. We present Flexmi: a new general-purpose textual syntax for defining models that conform to Eclipse Modelling Framework’s Ecore-based metamodels. Flexmi offers XML and YAML/JSON syntax flavours, it can be fuzzily parsed to reduce verbosity, and it includes a templating system to facilitate encapsulation of reusable composite model element structures, thus enabling more concise model specifications. We have evaluated Flexmi for verbosity and model loading performance against XMI, HUTN, and a bespoke (i.e. custom) textual syntax for Ecore (Emfatic). Our results indicate that the use of fuzzy parsing and templates allow Flexmi to achieve a significant reduction in the verbosity of models compared to XMI/HUTN and can become almost as concise as a bespoke textual syntax, with a moderate performance penalty.

Original languageEnglish
Pages (from-to)1197-1215
Number of pages19
JournalSoftware and Systems Modeling
Volume22
Issue number4
Early online date18 Nov 2022
DOIs
Publication statusPublished - Aug 2023

Bibliographical note

Funding Information:
The work presented in this paper has been funded through the HICLASS InnovateUK project (Contract No. 113213).

Publisher Copyright:
© 2022, The Author(s).

Keywords

  • Domain-specific languages
  • Generic textual syntaxes
  • Model-driven engineering

Cite this