Back in the late 1990s, the Motor Industry Software Reliability Association (MISRA) introduced a set of guidelines for the use of C in vehicle systems, which became known as MISRA C.
MISRA C came about due to necessary refinements for the C programming language, especially to help embedded developers who at that time felt there was no programming language specifically for their needs.
The problem was that, while the C language is compact, expressive and powerful and provides a programmer with the means to write efficient, readable and maintainable code, there is also a downside. The C language also enables the unwary developer to write dangerous, insecure code that can cause serious problems at all stages of a development project and into deployment.
For embedded applications where safety and/or security are a major priority, these shortcomings of the language were a major concern.
Although MISRA C was originally aimed at developers of software for use in cars, after steady refinement, it was quickly realized that MISRA C is equally applicable to many other application areas where safety is critical.
Consequently, MISRA C is now widely adopted in many industries, including those where embedded developers thrive.
Although MISRA C is not a style guide – indeed many users apply a style guide as well as the standard – numerous rules also promote the writing of clear, readable maintainable code.
This, of course, is very beneficial, as code that is straightforward to understand is much less likely to harbor subtle bugs or undefined behavior.
Today, MISRA C recommends the use of an automated static analysis tool to find violations of the standard. But keep in mind that all tools are not created equal, however, and some can only reason about superficial syntactic properties of the code. More advanced tools have deep semantic knowledge of the entire program.
Want to learn more? Tonex offers MISRA-C Training, a two-day course designed for C programmers, engineers and managers working on safety-critical applications for automotive, medical, military, aerospace, avionics, or other life-critical applications.
Additionally, MISRA-C training covers the MISRA C:2012 guidelines to ensure safe coding practices can be achieved efficiently.
For more information, questions, comments, contact us.