Translating event-B to JML-specified Java programs

We present a translation from Event-B machines to JML-specified Java class implementations and the EventB2Java Rodin plug-in that automates the translation. Producing JML specifications in addition to Java implementations enables users to write bespoke implementations that can then be checked for correctness using existing JML tools. We have validated the proposed translation by applying the EventB-2Java tool to various programs and systems.

[1]  Leonidas Tsiopoulos,et al.  VHDL Code Generation from Formal Event-B Models , 2011, 2011 14th Euromicro Conference on Digital System Design.

[2]  Bart Jacobs,et al.  Formal methods for smart cards: an experience report , 2005, Sci. Comput. Program..

[3]  Camilo Rueda,et al.  Teaching Formal Methods for the Unconquered Territory , 2009, TFM.

[4]  Camilo Rueda,et al.  Translating B machines to JML specifications , 2012, SAC '12.

[5]  Jean-Raymond Abrial,et al.  Modeling in event-b - system and software engineering by Jean-Raymond Abrial , 2010, SOEN.

[6]  Stephen Wright,et al.  Automatic Generation of C from Event-B , 2009 .

[7]  Michael Butler,et al.  Tool Support for Event-B Code Generation , 2010 .

[8]  Reto Meier Professional Android Application Development , 2008 .

[9]  Michael Butler,et al.  Tasking Event-B: An Extension to Event-B for Generating Concurrent Code , 2011 .

[10]  Camilo Rueda,et al.  Matelas: A Predicate Calculus Common Formal Definition for Social Networking , 2010, ASM.

[11]  Jean-Raymond Abrial,et al.  Refinement, Decomposition, and Instantiation of Discrete Models: Application to Event-B , 2007, Fundam. Informaticae.

[12]  Kriangsak Damchoom,et al.  An incremental refinement approach to a development of a flash-based file system in Event-B , 2010 .

[13]  Michael J. Butler,et al.  Decomposition Structures for Event-B , 2009, IFM.

[14]  G. S. Graham A New Solution of Dijkstra ' s Concurrent Programming Problem , 2022 .

[15]  Néstor Cataño,et al.  CHASE: A Static Checker for JML's Assignable Clause , 2002, VMCAI.

[16]  Camilo Rueda,et al.  A Machine-Checked Proof for a Translation of Event-B Machines to JML , 2013, ArXiv.

[17]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

[18]  Néstor Cataño,et al.  Executing JML specifications of Java card applications: a case study , 2009, SAC '09.

[19]  David R. Cok,et al.  OpenJML: JML for Java 7 by Extending OpenJDK , 2011, NASA Formal Methods.

[20]  Thai Son Hoang,et al.  Rodin: an open toolset for modelling and reasoning in Event-B , 2010, International Journal on Software Tools for Technology Transfer.

[21]  Dominique Méry,et al.  Automatic code generation from event-B models , 2011, SoICT '11.

[22]  Tim Wahls,et al.  jmle: A Tool for Executing JML Specifications Via Constraint Programming , 2006, FMICS/PDMC.