A Case for Certifying Compilers in Industrial Automation

Certifying Compilers are compilers that (1) compile programs from a source language into a target language, and (2) check their results for each compilation run by using a separate dedicated checker. In many cases, certifying compilers can guarantee compilation correctness for individual compilation runs, i.e., they guarantee that target code is a correct translation of given source code. This paper advocates the use of certifying compilers in industrial automation: It describes basic principles, potential benefits and future research directions: it connects work on certifying compilers, compiler correctness, and verification approaches in the area of industrial automation.

[1]  Gary T. Leavens,et al.  Specification and verification challenges for sequential object-oriented programs , 2007, Formal Aspects of Computing.

[2]  Jan Olaf Blech,et al.  Certifying Compilers based on Formal Translation Contracts , 2006 .

[3]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[4]  Christian Gerber,et al.  One Decade of IEC 61499 Modeling and Verification - Results and Open Issues , 2009 .

[5]  Lothar Litz,et al.  Formal methods in PLC programming , 2000, Smc 2000 conference proceedings. 2000 ieee international conference on systems, man and cybernetics. 'cybernetics evolving to systems, humans, organizations, and their complex interactions' (cat. no.0.

[6]  Jan Olaf Blech,et al.  A Certifying Code Generation Phase , 2007, COCV@ETAPS.

[7]  Olaf Stursberg,et al.  Verification of PLC Programs Given as Sequential Function Charts , 2004, SoftSpez Final Report.

[8]  Jan Olaf Blech,et al.  A Candidate Architecture for Cloud-Based Monitoring in Industrial Automation , 2017, 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C).

[9]  George C. Necula,et al.  The design and implementation of a certifying compiler (with retrospective) , 1998, PLDI 1998.

[10]  J Blech,et al.  Certifying Code Generation with Coq , 2008 .

[11]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.

[12]  Stefan Kowalewski,et al.  Arcade.PLC: a verification platform for programmable logic controllers , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[13]  Stefan Kowalewski,et al.  Application of static analyses for state-space reduction to the microcontroller binary code , 2011, Sci. Comput. Program..

[14]  Sophia Drossopoulou,et al.  Formal Techniques for Java-Like Programs , 2008, ECOOP Workshops.

[15]  Arnd Poetzsch-Heffter,et al.  Towards Proof Generating Compilers , 2022 .

[16]  Jan Olaf Blech,et al.  Generating Invariant-Based Certificates for Embedded Systems , 2012, TECS.

[17]  Alois Zoitl,et al.  Remote monitoring infrastructure for IEC 61499 based control software , 2016, 2016 8th International Congress on Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT).

[18]  Alois Zoitl,et al.  Modelling Control Systems Using IEC 61499 , 2014 .

[19]  Jang-Soo Lee,et al.  PLC-Based Safety Critical Software Development for Nuclear Power Plants , 2004, SAFECOMP.

[20]  Benjamin Grégoire,et al.  Certifying compilers using higher-order theorem provers as certificate checkers , 2011, Formal Methods Syst. Des..

[21]  Peter Müller,et al.  Proof-transforming compilation of programs with abrupt termination , 2007, SAVCBS '07.

[22]  Jan Olaf Blech,et al.  Verification of PLC Properties Based on Formal Semantics in Coq , 2011, SEFM.

[23]  Maulik A. Dave,et al.  Compiler verification: a bibliography , 2003, SOEN.

[24]  Víctor M. González Suárez,et al.  Model-based automated testing of critical PLC programs , 2013, 2013 11th IEEE International Conference on Industrial Informatics (INDIN).

[25]  John McCarthy,et al.  Correctness of a compiler for arithmetic expressions , 1966 .

[26]  Víctor M. González Suárez,et al.  Applying Model Checking to Industrial-Sized PLC Programs , 2015, IEEE Transactions on Industrial Informatics.

[27]  Jan Olaf Blech,et al.  Translation Validation of System Abstractions , 2007, RV.

[28]  J Blech,et al.  Certifying Code Generation Runs with Coq: A Tool Description , 2008 .

[29]  George C. Necula,et al.  The design and implementation of a certifying compiler , 1998, PLDI.

[30]  Valeriy Vyatkin,et al.  A Comparison of Formal Verification Approaches for IEC 61499 , 2016, 2016 IEEE 21st International Conference on Emerging Technologies and Factory Automation (ETFA).