A refinement-based compiler development for synchronous languages

In this paper, we are concerned by the elaboration of generic development steps for the code generation for synchronous languages. Our aim is to provide a correct by construction solution. For that purpose, we adopt a refinement-based approach where proof obligations for each step guarantee properties preservation. We use the Event-B formal method. We start with a big step semantics specified by an Event-B machine. Through a sequence of refinements, expressed as Event-B refinement machines, we end up with a code generation step which implements a small step semantics preserving the properties of the big step semantics.

[1]  Marc Pantel,et al.  Machine-Checked Sequencer for Critical Embedded Code Generator , 2009, ICFEM.

[2]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[3]  Joaquín Aguado,et al.  Denotational fixed-point semantics for constructive scheduling of synchronous concurrency , 2015, Acta Informatica.

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

[5]  Albert Benveniste,et al.  Concurrency in Synchronous Systems , 2006, Formal Methods Syst. Des..

[6]  Tobias Schüle,et al.  A Verified Compiler for Synchronous Programs with Local Declarations , 2006, SLAP@ETAPS.

[7]  Amir Pnueli,et al.  Translation Validation: From SIGNAL to C , 1999, Correct System Design.

[8]  Abdoulaye Gamatié Designing Embedded Systems with the SIGNAL Programming Language - Synchronous, Reactive Specification , 2010 .

[9]  Marc Pouzet,et al.  Clock-directed modular code generation for synchronous data-flow languages , 2008, LCTES '08.

[10]  John Derrick,et al.  Temporal-logic property preservation under Z refinement , 2011, Formal Aspects of Computing.

[11]  Klaus Schneider,et al.  Proving the Equivalence of Microstep and Macrostep Semantics , 2002, TPHOLs.

[12]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[13]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[14]  Abdoulaye Gamati Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification , 2009 .

[15]  Xavier Leroy,et al.  A Formally Verified Compiler Back-end , 2009, Journal of Automated Reasoning.

[16]  André Arnold,et al.  Finite transition systems - semantics of communicating systems , 1994, Prentice Hall international series in computer science.

[17]  P. Guernic,et al.  Arborescent canonical form of boolean expressions , 1994 .

[18]  Sandeep K. Shukla,et al.  Constructive polychronous systems , 2014, Sci. Comput. Program..

[19]  Christine Paulin-Mohring,et al.  The Coq Proof Assistant : A Tutorial : Version 7.2 , 1997 .

[20]  Thierry Gautier,et al.  Translation Validation for Synchronous Data-Flow Specification in the SIGNAL Compiler , 2015, FORTE.

[21]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.