I have always liked the C language. Initially the appeal was its power and the possibility to write very succinct code. My early experiences with the language [at which time I was often involved in tech support] quickly taught me that writing readable and maintainable code was a necessity, as the language can quickly lead you astray. With this in mind, it was 15+ years ago that my attention was drawn to MISRA C …
MISRA C is not a language, but rather a set of guidelines to using standard C to write reliable [safe] code. The standard was defined by the Motor Industry Software Reliability Association [hence, MISRA] and originally targeted at developers of automotive software. It was quickly realized that nothing about the standard was specific to automotive applications; it was just as applicable to other industry sectors where reliability of code was critical – e.g. medical, industrial, etc.
The first edition of the standard – Development Guidelines for Vehicle Based Software – was published in 1994, so this year is the 25th anniversary! That is a long time in high-tech and interest and take-up of MISRA C has never been higher. You can read more about the anniversary and history of MISRA C here and here.
My personal involvement in MISRA C has been in recent years. I present on the topic at conferences, webinars, etc. Indeed, this is a subject that I will be addressing at Embedded World next year – watch this space. A couple of years ago, I was invited to join the MISRA C Working Group. This is the team who maintain the standard, publish updated editions and answer users’ questions. So far, my contribution has been modest, but I have appreciated the insight into the thought and hard work that goes into the maintenance of such a standard.