BUGSENG’s joint paper with Michael Barr
Roberto Bagnara and Dr Patricia Hill of BUGSENG are currently working on a joint paper with Michael Barr, a leading embedded systems software engineer and consultant. The paper discusses the relationship between BARR-C: 2018 and MISRA C: 2012. These are the two most widely used C coding standards and the paper details their parallel and serial adoption.
Michael Barr is an internationally recognized expert in the embedded software field. He is co-founder of the Barr Group, a former professor of electrical and computer engineering, and the author of three books and more than seventy published articles and papers about embedded systems design. Michael became famous for his role as an expert witness testifying in the Toyota Sudden Unintended Acceleration Litigation case in the US in 2013.
The Barr Group's Embedded C Coding Standard (BARR-C: 2018, which originates from Netrino's 2009 Embedded C Coding Standard) is, for coding standards used by the embedded systems industry, second only in popularity to MISRA C. In this paper, we summarize the evolution of the BARR-C coding standard and highlight how, in the BARR-C: 2018 release, all inconsistencies and contradictions with MISRA C have been removed.
The BARR-C: 2018 and MISRA C: 2012 coding standards are complementary
“Complying with BARR-C: 2018 is not the same thing as complying with MISRA C,” stresses Roberto. “There are still many differences. One example is programming style. MISRA C has little to say about this and leaves it to individual organizations to adhere to a sensible coding style. BARR-C: 2018, on the other hand, has practical suggestions to achieve a programming style aimed primarily at minimizing programming errors.”
However, in this joint paper, we argue that the two coding standards can be seen as complementary. For example, BARR-C: 2018 can be a useful and pragmatic step to C language subsetting that is suitable for many projects where the software is not safety critical or where there is no contractor requirement to comply with MISRA C. Safety critical projects can then evolve toward MISRA C: 2012 compliance in smooth, logical steps, while maintaining the BARR-C: 2018 language restrictions and programming style.
In fact, the latest edition of BUGSENG’s ECLAIR verification tool is designed to help developers implement both MISRA C: 2012 and BARR-C: 2018. This means that, once your project has complied with BARR-C: 2018, achieving MISRA C compliance is much easier. The ECLAIR tool will detail the missing steps, rule by rule, so you don’t need to start from scratch and you can continue complying with BARR-C: 2018, including its style guidelines.
Meet BUGSENG at Embedded World 2020
We would love to see you at Embedded World in February, where our joint paper will be published and Roberto will be expanding more on this topic in his presentation. The BUGSENG team attended last year and found it a fascinating and useful experience. If you’d like to join us, and many other speakers and delegates in Nuremberg, 25-27 February 2020, you’ll find all the details, including how to book your tickets, here.
Upcoming events in Spain and Italy during November
On 26 November, Roberto will be at the IMDEA Software Institute, in Madrid, to attend the workshop on software reliability for Madrid Flight on Chip (MFoC). He will also be giving a talk on: "Precise approximation of Floating-Point Computations for C/C++ Software Using the Mathematical Libraries".
You can find full details, here.
This year, C++ Day is 30 November. This is an annual event in Italy, when the C++ community of professionals, companies and students come together to share their knowledge and experience. As part of the celebrations, Roberto is giving a talk at the Department of Engineering at Parma University, on: "MISRA C++: A Subset of C++ for the Development of High-Integrity Systems". This talk has been co-authored by Roberto and Chris Tapp who, among other things, is Chair of the MISRA C++ Working Group.
Please note that the C++ Day 2019 is a not-for-profit, free event but registration is required. You can book your free tickets on Eventbrite.
We hope to see you at one of our events soon.
Roberto Bagnara, Ph.D is CTO of BUGSENG, a leading provider of solutions and services for static code analysis. He is also a member of the ISO/IEC JTC1/SC22/WG14 - C Standardization Working Group and the MISRA C Working Group.