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

ver descrição completa

Detalhes bibliográficos
Autores: Lara Jaramillo, Juan de, Guerra Sánchez, Esther, Bottoni, Paolo
Tipo de documento: artigo
Data de publicação:2024
País:España
Recursos:Universidad Autónoma de Madrid
Repositório:Biblos-e Archivo. Repositorio Institucional de la UAM
Idioma:inglês
OAI Identifier:oai:repositorio.uam.es:10486/713010
Acesso em linha:http://hdl.handle.net/10486/713010
https://dx.doi.org/10.1007/s10270-024-01179-9
Access Level:Acceso aberto
Palavra-chave:Model-Driven Engineering
Graph Transformation
Software Language Engineering
Product Lines
Informática
Descrição
Resumo: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