ABSTRACT
This paper presents a translation tool that automatically generates efficient target programming language code (C, C++, Java and C#) from Event-B formal specification related to the analysis of complex problems. This tool is a collection of plug-ins, which are used for translating Event-B formal specifications into different kinds of programming languages. The translation tool is rigorously developed with safety properties preservation. The results detailed in this paper are an architecture of the translation process, to generate a target language code from Event-B models using Event-B grammar through syntax-directed translation, code scheduling architecture and verification of an automatic generated code. The translator checks syntax and type consistency before generating the target programming language code. The translation tool has been developed as a set of Rodin plug-ins under the Eclipse development framework. An assessment of the proposed approach is given through a case study, relative to the development of a cardiac pacemaker system.
- J.-R. Abrial. Modeling in Event-B: System and Software Engineering. Cambridge University Press. Google ScholarDigital Library
- J.-R. Abrial. The B-book: assigning programs to meanings. Cambridge University Press, New York, NY, USA, 1996. Google ScholarCross Ref
- Ken Arnold, James Gosling, and David Holmes. The Java Programming Language (Fourth Edition). Addison-Wesley Professional, 2005. Google ScholarDigital Library
- Atelier B. Atelier de génie logiciel permettant de développer des logiciels prouvés sans défaut. http://www.atelierb.eu/.Google Scholar
- S. Serge Barold, Roland X. Stroobandt, and Alfons F. Sinnaeve. Cardiac Pacemakers Step by Step. Futura Publishing, 2004. ISBN 1-4051-1647-1.Google ScholarCross Ref
- Marco Bernardo and Edoardo Bontà. Generating well-synchronized multithreaded programs from software architecture descriptions. In WICSA, pages 167--176, 2004. Google ScholarDigital Library
- Marco Bernardo and Edoardo Bontà. Preserving architectural properties in multithreaded code generation. In COORDINATION, LNCS, pages 188--203, 2005. Google ScholarDigital Library
- Didier Bert, Sylvain Boulmé, Marie-Laure Potet, Antoine Requet, and Laurent Voisin. Adaptable Translator of B Specifications to Embedded C Programs. In FME, pages 94--113, 2003.Google ScholarCross Ref
- Dirk Beyer, Thomas Henzinger, Ranjit Jhala, and Rupak Majumdar. The software model checker BLAST, Applications to software engineering. STTT, 9:505--525, 2007. Google ScholarDigital Library
- Dines Bjørner and Cliff B. Jones, editors. The Vienna Development Method: The Meta-Language, London, UK, 1978. Springer-Verlag.Google ScholarCross Ref
- E. Bonta and M. Bernardo. PADL2Java: A Java code generator for process algebraic architectural descriptions. In Software Architecture, 2009 European Conference on Software Architecture. WICSA/ECSA 2009., pages 161--170, 2009.Google ScholarCross Ref
- Carlos Paiz Christopher Pohl and Mario Porrmann. vMAGIC-Automatic Code Generation for VHDL. In International Journal of Reconfigurable Computing.Google Scholar
- D. Coleman and J. W. Hughes. The clean termination of Pascal programs. Acta Informatica, 11:195--210, 1979. 10.1007/BF00289066.Google ScholarDigital Library
- Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. Combination of abstractions in the astrée static analyzer. In Proceedings of the 11th Asian computing science conference on Advances in computer science: secure software and related issues, ASIAN'06, pages 272--300, Berlin, Heidelberg, 2007. Springer-Verlag. Google ScholarDigital Library
- EB2ALL. Automatic code generation from Event-B to many Programming Languages. http://eb2all.loria.fr/, 2011.Google Scholar
- Andrew Edmunds and Michael Butler. Tool Support for Event-B Code Generation. In WS-TBFM2010, February 2010.Google Scholar
- Andrew Edmunds and Michael Butler. Tasking Event-B: An Extension to Event-B for Generating Concurrent Code. In PLACES 2011, February 2011.Google Scholar
- James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. Java(TM) Language Specification, The (3rd Edition). Addison-Wesley Professional, 2005. Google ScholarDigital Library
- Brian W. Kernighan and Dennis Ritchie. C Programming Language. Prentice Hall, 1988. ISBN-100131103628. Google ScholarDigital Library
- Dominique Méry and Neeraj Kumar Singh. Pacemaker's Functional Behaviors in Event-B. Research Report (http://hal.inria.fr/inria-00419973/en/), 2009.Google Scholar
- Dominique Méry and Neeraj Kumar Singh. EB2C: A Tool for Event-B to C Conversion Support, Poster and Tool Demo submission and published in a CNR Technical Report in SEFM. 2010.Google Scholar
- Dominique Méry and Neeraj Kumar Singh. Technical Report on Formal Development of Two-Electrode Cardiac Pacing System. (http://hal.archives-ouvertes.fr/inria-00465061/en/), 2010.Google Scholar
- Dominique Méry and Neeraj Kumar Singh. Functional behavior of a cardiac pacing system. International Journal of Discrete Event Control Systems, 1(2):129--149, 2011.Google Scholar
- Overture Tool Box. Overture: Formal Modelling in VDM. http://www.overturetool.org/.Google Scholar
- David J. Pearce, Paul H. J. Kelly, and Chris Hankin. Efficient field-sensitive pointer analysis of c. ACM Trans. Program. Lang. Syst., 30(1):4, 2007. Google ScholarDigital Library
- Project RODIN. Rigorous open development environment for complex systems. http://rodin-b-sharp.sourceforge.net/, 2004.Google Scholar
- Jeffrey Richter. CLR Via C#, Second Edition. Microsoft Press, Redmond, 2006.Google Scholar
- Richard L. Sites. Clean Termination of Computer Programs. Ph.D. dissertation, Stanford University, Stanford, California, June 1974.Google ScholarDigital Library
- Jeffrey E. Smith, Mieczyslaw M. Kokar, and Kenneth Baclawski. Formal verification of uml diagrams: A first step towards code generation. In The Unified Modeling Language, pages 224--240. GI, 2001. Google ScholarDigital Library
- Bjarne Stroustrup. The C++ Programming Language, Third Edition. Addison-Wesley, 1994. Google ScholarDigital Library
- Steve Wright. Automatic Generation of C from Event-B. In Workshop on Integration of Model-based Formal Methods and Tools IMFMT'2009 -- in IFM'2009, Düsseldorf, Germany.Google Scholar
Index Terms
- Automatic code generation from event-B models
Recommendations
Code generation for Event-B
Event-B is a modelling language and a formal methods approach for correct construction of software. This paper presents our work on code generation for Event-B, including the definition of a syntactic translation from Event-B to JML-annotated Java ...
Towards the Composition of Specifications in Event-B
The development of a system can start with the creation of a specification. Following this viewpoint, we claim that often a specification can be constructed from the combination of specifications which can be seen as composition. Event-B is a formal ...
VHDL Code Generation from Formal Event-B Models
DSD '11: Proceedings of the 2011 14th Euromicro Conference on Digital System DesignIn this paper, we present an approach that allows to generate VHDL code from formal models developed with the Event-B formalism. The approach is based on the relationship between the structure of the formal model and hardware description language ...
Comments