Asm2C++: A Tool for Code Generation from Abstract State Machines to Arduino

  • Silvia BonfantiEmail author
  • Marco Carissoni
  • Angelo Gargantini
  • Atif Mashkoor
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10227)


This paper presents Asm2C++, a tool that automatically generates executable C++ code for Arduino from a formal specification given as Abstract State Machines (ASMs). The code generation process follows the model-driven engineering approach, where the code is obtained from a formal abstract model by applying certain transformation rules. The translation process is highly configurable in order to correctly integrate the underlying hardware. The advantage of the Asm2C++ tool is that it is part of the Asmeta framework that allows to analyze, verify, and validate the correctness of a formal model.


Eclipse Modeling Framework Abstract State Machine Main Rule Runtime Verification Compilation Scheme 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Abrial, J.-R.: The B-book: Assigning Programs to Meanings. Cambridge University Press, New York (1996)CrossRefzbMATHGoogle Scholar
  2. 2.
    Arcaini, P., Bonfanti, S., Dausend, M., Gargantini, A., Mashkoor, A., Raschke, A., Riccobene, E., Scandurra, P., Stegmaier, M.: Unified syntax for abstract state machines. In: Butler, M., Schewe, K.-D., Mashkoor, A., Biro, M. (eds.) ABZ 2016. LNCS, vol. 9675, pp. 231–236. Springer, Cham (2016). doi: 10.1007/978-3-319-33600-8_14 CrossRefGoogle Scholar
  3. 3.
    Arcaini, P., Gargantini, A., Riccobene, E., Scandurra, P.: A model-driven process for engineering a toolset for a formal method. Softw.: Pract. Exp. 41, 155–166 (2011)Google Scholar
  4. 4.
    Börger, E., Stark, R.F.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer, New York (2003)CrossRefzbMATHGoogle Scholar
  5. 5.
    Cataño, N., Rivera, V.: EventB2Java: a code generator for event-B. In: Rayadurgam, S., Tkachuk, O. (eds.) NFM 2016. LNCS, vol. 9690, pp. 166–171. Springer, Cham (2016). doi: 10.1007/978-3-319-40648-0_13 CrossRefGoogle Scholar
  6. 6.
    Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: Proceedings of the ACM International Conference Companion on OOPSLA, pp. 307–309. ACM (2010)Google Scholar
  7. 7.
    Schmid, J.: Compiling abstract state machines to C++. JUCS 7(11), 1068–1087 (2001)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Silvia Bonfanti
    • 1
    • 2
    Email author
  • Marco Carissoni
    • 1
  • Angelo Gargantini
    • 1
  • Atif Mashkoor
    • 2
  1. 1.Università degli Studi di BergamoBergamoItaly
  2. 2.Software Competence Center Hagenberg GmbHHagenberg im MühlkreisAustria

Personalised recommendations