Modular language product lines: Concept, tool and analysis

Modelling languages are intensively used in paradigms like model-driven engineering to automate all tasks of the development process. These languages may have variants, in which case the need arises to deal with language families rather than with individual languages. However, specifying the syntax...

Descripción completa

Detalles Bibliográficos
Autores: Lara Jaramillo, Juan de, Guerra Sánchez, Esther, Bottoni, Paolo
Tipo de recurso: artículo
Fecha de publicación:2024
País:España
Institución:Universidad Autónoma de Madrid
Repositorio:Biblos-e Archivo. Repositorio Institucional de la UAM
Idioma:inglés
OAI Identifier:oai:repositorio.uam.es:10486/713010
Acceso en línea:http://hdl.handle.net/10486/713010
https://dx.doi.org/10.1007/s10270-024-01179-9
Access Level:acceso abierto
Palabra clave:Model-Driven Engineering
Graph Transformation
Software Language Engineering
Product Lines
Informática
Descripción
Sumario:Modelling languages are intensively used in paradigms like model-driven engineering to automate all tasks of the development process. These languages may have variants, in which case the need arises to deal with language families rather than with individual languages. However, specifying the syntax and semantics of each language variant separately in an enumerative way is costly, hinders reuse across variants, and may yield inconsistent semantics between variants. Hence, we propose a novel, modular and compositional approach to describing product lines of modelling languages. It enables the incremental definition of language families by means of modules comprising meta-model fragments, graph transformation rules, and rule extensions. Language variants are configured by selecting the desired modules, which entails the composition of a language meta-model and a set of rules defining its semantics. This paper describes: a theory for checking well-formedness, instantiability, and consistent semantics of all languages within the family; an implementation as an Eclipse plugin; and an evaluation reporting drastic specification size and analysis time reduction in comparison to an enumerative approach