Supporting meta-model-based language evolution and rapid prototyping with automated grammar transformation
Artikel i vetenskaplig tidskrift, 2024

In model-driven engineering, developing a textual domain-specific language (DSL) involves constructing a meta-model, which defines an underlying abstract syntax, and a grammar, which defines the concrete syntax for the DSL. We consider a scenario in which the meta-model is manually maintained, which is common in various contexts, such as blended modeling, in which several concrete syntaxes co-exist in parallel. Language workbenches such as Xtext support such a scenario, but require the grammar to be manually co-evolved, which is laborious and error-prone. In this paper, we present GRAMMARTRANSFORMER, an approach for transforming generated grammars in the context of meta-model-based language evolution. To reduce the effort for language engineers during rapid prototyping and language evolution, it offers a catalog of configurable grammar transformation rules. Once configured, these rules can be automatically applied and re-applied after future evolution steps, greatly reducing redundant manual effort. In addition, some of the supported transformations can globally change the style of concrete syntax elements, further significantly reducing the effort for manual transformations. The grammar transformation rules were extracted from a comparison of generated and existing, expert-created grammars, based on seven available DSLs. An evaluation based on the seven languages shows GRAMMARTRANSFORMER's ability to modify Xtext-generated grammars in a way that agrees with manual changes performed by an expert and to support language evolution in an efficient way, with only a minimal need to change existing configurations over time.

Domain-specific languages

Language evolution

DSL

Grammar

Language prototyping

Xtext

Författare

Weixing Zhang

Göteborgs universitet

Software Engineering 1

Jörg Holtmann

Independent researcher

Daniel Strüber

Software Engineering 2

Radboud Universiteit

Göteborgs universitet

R. Hebig

Universität Rostock

Jan-Philipp Steghöfer

XITASO

Journal of Systems and Software

0164-1212 (ISSN)

Vol. 214 112069

Ämneskategorier

Programvaruteknik

Datavetenskap (datalogi)

DOI

10.1016/j.jss.2024.112069

Mer information

Senast uppdaterat

2024-06-26