- MISRA C
MISRA C is a software development standard for the C
programming language developed by MISRA. Its aims are to facilitate codesafety ,portability and reliability in the context ofembedded systems , specifically those systems programmed inISO C . There is also a set of guidelines forMISRA C++ .The first edition of the MISRA C standard, "Guidelines for the use of the C language in vehicle based software", was produced in 1998, and is officially known as "MISRA-C:1998". [http://www.misra-c2.com/intro.htm]
In 2004, a second edition "Guidelines for the use of the C language in critical systems", or "MISRA-C:2004" was produced, with many substantial changes to the guidelines, including a complete renumbering of the rules.
Work has just started on the next revision of the guidelines, which are intended to address use of
C99 .The MISRA C guideline documents are not free to users or implementors. [ [http://www.misra-c2.com/buy.htm "Buying MISRA C"] ]
Rules
"MISRA-C:1998" had 127 rules, of which 93 were required and 34 were advisory; the rules were numbered in sequence from 1 to 127.
The "MISRA-C:2004" document contains 141 rules, of which 121 are "required" and 20 are "advisory"; they are divided into 21 topical categories, from "Environment" to "Run-time failures".
Tools
While there exist many software tools that claim to check code for "MISRA conformance", there is no MISRA certification process [http://www.misra-c2.com/faqs.htm] .
An Exemplar Suite for MISRA-C:2004 is available from [http://www.misra-c.com/forum/ the MISRA Forum] (registration required), which allows tool users to evaluate and compare the checking support provided by the various MISRA tools. Additionally, it gives tool implementors some guidance as to the intent of the Rules within MISRA-C:2004.
Most of the guidelines can be checked using tools that perform
static code analysis . The remaining guidelines require the use ofdynamic code analysis .MISRA C Tool Vendors
The following is an incomplete list of tool vendors claiming to check one or more of the MISRA C guidelines.
* [http://www.ldra.com LDRA Ltd]
* [http://www.programmingresearch.com Programming Research]
* [http://www.gimpel.com Gimpel Software's PC-lint & FlexeLint]
* [http://www.polyspace.com/ PolySpace]
* [http://www.sgvsarc.com/ Crystal REVS]MISRA C Committee
The current MISRA C committee has the following members:
* Gavin McCall, Visteon Engineering Services (Chairman)
* Andrew Banks, Intuitive Consulting
* Manu Batura, Patni Computer Systems Ltd
* Mark Bradbury, Goodrich Engine Control Systems
* Paul Burden, Programming Research
* Mark Dawson-Butterworth, Zytek Automotive Ltd
* Mike Hennell, LDRA Ltd
* Chris Hills, Phaedrus Systems Ltd
* Steve Montgomery, Ricardo Tarragon Ltd
* Chris Tapp, Keylevel Consultants Ltd
* Liz Whiting, QinetiQ LtdFormer members:
* Andrew Burnard, Jaguar Land Rover LtdThe project management, publication and distribution have been handled by David Ward, MIRA Ltd.
External links
* [http://www.leshatton.org/index_SA.html MISRA C papers] written by
software reliability expertLes Hatton
* [http://www.knosof.co.uk/misracom.html Commentary on the first edition of the MISRA C guidelines]References
Wikimedia Foundation. 2010.