Abstract
The work presented in this paper lies in the context of implementing supporting tools for a domain-specific language named SosADL, targeted at the description and analysis of architecture for systems of systems. While the language has formal definition rooted in the Cc-pi calculus, we have adopted the Eclipse ecosystem, including EMF, Ecore and Xtext for the convenience they provide in implementation tasks. Proof-carrying code is a well-known approach to ensure such an implementation involving non-formal technologies conforms to its formal definition, by making the implementation generate proof in addition to usual output artifacts. In this paper, we therefore investigate for an infrastructure that eases the development of proof-carrying code for an Eclipse/EMF/Ecore/Xtext-based tool in relation with the Coq proof assistant. At the core of our approach, we combine an automatic transformation of a metamodel into a set of inductive types, in conjunction with a second transformation of model elements into terms. The first one, reused from our previous work, provides necessary abstract syntax definitions such that the formal definition of the language can be mechanized using Coq. The second transformation is part of the proof generator.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Buisson, J., Rehab, S.: Automatic transformation from ecore metamodels towards gallina inductive types. In: Hammoudi, S., Pires, L.F., Selic, B. (eds.) Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018, Funchal, Madeira, Portugal, 22–24 Jan 2018. pp. 488–495. SciTePress (2018). https://doi.org/10.5220/0006608604880495
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0, 2nd edn. Addison-Wesley Professional, New York (2009)
Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development—Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. An EATCS Series. Springer, Berlin (2004). https://doi.org/10.1007/978-3-662-07964-5
Necula, G.C.: Proof-carrying code. In: Lee, P., Henglein, F., Jones, N.D. (eds.) Conference Record of POPL’97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. Papers Presented at the Symposium, Paris, France, 15–17 Jan 1997, pp. 106–119. ACM Press (1997). https://doi.org/10.1145/263699.263712
Oquendo, F., Buisson, J., Leroux, E., Moguérou, G.: A formal approach for architecting software-intensive systems-of-systems with guarantees. In: 13th Annual Conference on System of Systems Engineering, SoSE 2018, Paris, France, 19–22 June 2018, pp. 14–21. IEEE (2018). https://doi.org/10.1109/SYSOSE.2018.8428726
Buscemi, M.G., Montanari, U.: Cc-pi: a constraint language for service negotiation and composition. In: Wirsing, M., Hölzl, M.M. (eds.) Rigorous Software Engineering for Service-Oriented Systems—Results of the SENSORIA Project on Software Engineering for Service-Oriented Computing. Lecture Notes in Computer Science, vol. 6582, pp. 262–281. Springer (2011). https://doi.org/10.1007/978-3-642-20401-2_12
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham (2013)
Djeddai, S., Strecker, M., Mezghiche, M.: Integrating a formal development for DSLs into meta-modeling. J. Data Semant. 3(3), 143–155 (2014). https://doi.org/10.1007/s13740-013-0030-4
Klint, P., van der Storm, T.: Model transformation with immutable data. In: Gorp, P.V., Engels, G. (eds.) Theory and Practice of Model Transformations—9th International Conference, ICMT 2016, Held as Part of STAF 2016, Vienna, Austria, 4–5 July 2016, Proceedings. Lecture Notes in Computer Science, vol. 9765, pp. 19–35. Springer (2016). https://doi.org/10.1007/978-3-319-42064-6_2
Meyer, E., Souquières, J.: A systematic approach to transform OMT diagrams to a B specification. In: Wing, J.M., Woodcock, J., Davies, J. (eds.) FM’99—Formal Methods, World Congress on Formal Methods in the Development of Computing Systems, Toulouse, France, 20–24 Sept 1999, Proceedings, Volume I. Lecture Notes in Computer Science, vol. 1708, pp. 875–895. Springer (1999). https://doi.org/10.1007/3-540-48119-2_48
Lano, K., Clark, D., Androutsopoulos, K.: UML to B: formal verification of object-oriented models. In: Boiten, E.A., Derrick, J., Smith, G. (eds.) Integrated Formal Methods, 4th International Conference, IFM 2004, Canterbury, UK, 4–7 April 2004, Proceedings. Lecture Notes in Computer Science, vol. 2999, pp. 187–206. Springer (2004). https://doi.org/10.1007/978-3-540-24756-2_11
Barbier, F., Cariou, E.: Inductive UML. In: Abelló, A., Bellatreche, L., Benatallah, B. (eds.) Model and Data Engineering—2nd International Conference, MEDI 2012, Poitiers, France, 3–5 Oct 2012. Proceedings. Lecture Notes in Computer Science, vol. 7602, pp. 153–161. Springer (2012). https://doi.org/10.1007/978-3-642-33609-6_15
Cabot, J., Clarisó, R., Riera, D.: On the verification of UML/OCL class diagrams using constraint programming. J. Syst. Softw. 93, 1–23 (2014). https://doi.org/10.1016/j.jss.2014.03.023
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Buisson, J., Rehab, S. (2019). Effective Bridging Between Ecore and Coq: Case of a Type-Checker with Proof-Carrying Code. In: Chikhi, S., Amine, A., Chaoui, A., Saidouni, D.E. (eds) Modelling and Implementation of Complex Systems. MISC 2018. Lecture Notes in Networks and Systems, vol 64. Springer, Cham. https://doi.org/10.1007/978-3-030-05481-6_20
Download citation
DOI: https://doi.org/10.1007/978-3-030-05481-6_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-05480-9
Online ISBN: 978-3-030-05481-6
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)