Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3127041.3127056acmconferencesArticle/Chapter ViewAbstractPublication PagesmemocodeConference Proceedingsconference-collections
research-article

A refinement-based compiler development for synchronous languages

Published: 29 September 2017 Publication History

Abstract

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.

References

[1]
Jean-Raymond Abrial. 2010. Modeling in Event-B - System and Software Engineering. Cambridge University Press. http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=9780521895569
[2]
Joaquin Aguado, Michael Mendler, Reinhard von Hanxleden, and Insa Fuhrmann. 2015. Denotational fixed-point semantics for constructive scheduling of synchronous concurrency. Acta Inf. 52, 4--5 (2015), 393--442.
[3]
Tochéou Pascalin Amagbegnon, Loïc Besnard, and Paul Le Guernic. 1994. Arborescent canonical form of boolean expressions. Research Report RR-2290. INRIA. https://hal.inria.fr/inria-00074382
[4]
André Arnold. 1994. Finite transition systems - semantics of communicating systems. Prentice Hall.
[5]
Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert de Simone. 2003. The synchronous languages 12 years later. Proc. IEEE 91, 1 (2003), 64--83.
[6]
Dariusz Biernacki, Jean-Louis Colaço, Grégoire Hamon, and Marc Pouzet. 2008. Clock-directed modular code generation for synchronous data-flow languages. In Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES'08), Tucson, AZ, USA, June 12--13, 2008, Krisztián Flautner and John Regehr (Eds.). ACM, 121--130.
[7]
John Derrick and Graeme Smith. 2012. Temporal-logic property preservation under Z refinement. Formal Aspects of Computing 24, 3 (2012), 393--416.
[8]
Abdoulaye Gamatié. 2010. Designing Embedded Systems with the SIGNAL Programming Language - Synchronous, Reactive Specification. Springer.
[9]
Gérard Huet, Gilles Kahn, and Christine Paulin-Mohring. 1997. The Coq Proof Assistant : A Tutorial : Version 6.1. Research Report RT-0204. INRIA. 44 pages. https://hal.inria.fr/inria-00069967 Projet COQ.
[10]
Nassima Izerrouken, Marc Pantel, and Xavier Thirioux. 2009. Machine Checked Sequencer for Critical Embedded Code Generator. In International Conference on Formal Engineering Methods (ICFEM), Rio de Janeiro, Brazil. Springer-Verlag.
[11]
Xavier Leroy. 2009. A Formally Verified Compiler Back-end. Journal of Automated Reasoning 43, 4 (2009), 363.
[12]
R. Milner. 1989. Communication and Concurrency. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
[13]
Van Chan Ngo, Jean-Pierre Talpin, and Thierry Gautier. 2015. Translation Validation for Synchronous Data-Flow Specification in the SIGNAL Compiler. In FORTE, Grenoble, France, June 2--4, 2015 (LNCS), Susanne Graf and Mahesh Viswanathan (Eds.), Vol. 9039. Springer, 66--80.
[14]
Tobias Nipkow, Markus Wenzel, and Lawrence C. Paulson. 2002. Isabelle/HOL: A Proof Assistant for Higher-order Logic. Springer-Verlag, Berlin, Heidelberg.
[15]
S. Owre, J. M. Rushby, and N. Shankar. 1992. PVS: A Prototype Verification System. In 11th International Conference on Automated Deduction (LNAI), Deepak Kapur (Ed.), Vol. 607. Springer-Verlag, Saratoga, NY, 748--752.
[16]
Amir Pnueli, Ofer Strichman, and Michael Siegel. 1999. Translation Validation: From SIGNAL to C. In Correct System Design, Recent Insight and Advances (LNCS), Ernst-Rüdiger Olderog and Bernhard Steffen (Eds.), Vol. 1710. Springer, 231--255.
[17]
Dumitru Potop-Butucaru, Benoît Caillaud, and Albert Benveniste. 2006. Concurrency in Synchronous Systems. Formal Methods in System Design 28, 2 (2006), 111--130.
[18]
Rodin {n. d.}. http://www.event-b.org/. ({n. d.}).
[19]
Klaus Schneider. 2002. Proving the Equivalence of Microstep and Macrostep Semantics. In Theorem Proving in Higher Order Logics, 15th Int. Conference, Hampton, VA, USA, August 20--23 (LNCS), Victor Carreño, César A. Muñoz, and Sofiène Tahar (Eds.), Vol. 2410. Springer, 314--331.
[20]
Klaus Schneider, Jens Brandt, and Tobias Schuele. 2006. A Verified Compiler for Synchronous Programs with Local Declarations. Electron. Notes Theor. Comput. Sci. 153, 4 (June 2006), 71--97.
[21]
Jean-Pierre Talpin, Jens Brandt, Mike Gemünde, Klaus Schneider, and Sandeep Shukla. 2014. Constructive Polychronous Systems. Sci. Comput. Program. 96, P3 (Dec. 2014), 377--394.

Cited By

View all
  • (2020)Toward Scalable Demand-Driven JSON-to-Forensic Lucid Encoder in GIPSY2020 International Symposium on Networks, Computers and Communications (ISNCC)10.1109/ISNCC49221.2020.9297224(1-6)Online publication date: 20-Oct-2020

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MEMOCODE '17: Proceedings of the 15th ACM-IEEE International Conference on Formal Methods and Models for System Design
September 2017
192 pages
ISBN:9781450350938
DOI:10.1145/3127041
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 September 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code generation
  2. refinement
  3. semantics
  4. synchronous languages
  5. verification

Qualifiers

  • Research-article

Conference

MEMOCODE '17
Sponsor:

Acceptance Rates

MEMOCODE '17 Paper Acceptance Rate 22 of 48 submissions, 46%;
Overall Acceptance Rate 34 of 82 submissions, 41%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Toward Scalable Demand-Driven JSON-to-Forensic Lucid Encoder in GIPSY2020 International Symposium on Networks, Computers and Communications (ISNCC)10.1109/ISNCC49221.2020.9297224(1-6)Online publication date: 20-Oct-2020

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media