MISRA C

From Wikipedia, the free encyclopedia

MISRA C is a software development standard for the C programming language developed by the Motor Industry Software Reliability Association, or MISRA. Its aims are to facilitate code portability and reliability in the context of embedded systems, specifically those systems programmed in ANSI C. (There are no plans to extend the MISRA guidelines to C99 or 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.[1] 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 the rescinding of 15 rules that "did not make sense"[1] and a complete renumbering of the 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".

While there exist many software tools that claim to check code for "MISRA conformance", in fact there is no MISRA certification process[2] and MISRA does not provide any guidelines or test suites for would-be implementors. MISRA program checkers, therefore, provide a motley collection of interfaces and levels of functionality.

The MISRA C guideline documents are not free to users or implementors.[3]

[edit] References

  1. ^ Forward to MISRA-C:2004, "Guidelines for the use of the C language in critical systems", ISBN 0-9524156-4-X
In other languages