Authors:
Jérémy Buisson
1
and
Seidali Rehab
2
Affiliations:
1
IRISA and Écoles de Saint-Cyr Coëtquidan, France
;
2
MISC and University of Constantine 2, Algeria
Keyword(s):
Model-Driven Engineering, Model Transformation, QVT, Ecore, Xtext, Coq.
Related
Ontology
Subjects/Areas/Topics:
Methodologies, Processes and Platforms
;
Model Transformation
;
Model Transformations and Generative Approaches
;
Model-Driven Software Development
;
Models
;
Paradigm Trends
;
Software Engineering
Abstract:
When engineering a language (and its compiler), it is convenient to use widespread and easy-to-use MDE frameworks like Xtext that automatically generate a compiler infrastructure, and even a full-featured IDE. At the same time, a formal workbench such as a proof assistant is helpful to ensure the language specification is sound. Unfortunately, the two technical spaces hardly integrate. In this paper, we propose a transformation from Ecore's metametamodel to Coq's language named Gallina/Vernacular. The structural fragment of Ecore is fully handled. At the cost of not being bijective, our transformation has relaxed constraints over the input metamodel, in comparison to previous state of the art. To validate, we have used the proposed transformation with a complete and representative test suite, as well as a proof-carrying code type checker.