# MISRA C

MISRA C és un conjunt de directrius de desenvolupament de programari per al llenguatge de programació C desenvolupat pel Consorci MISRA. Els seus objectius són facilitar la seguretat, la fiabiliat, la portabilitat i la fiabilitat del codi en el context dels sistemes encastats, concretament els sistemes programats a la ISO C /C90/ C99.
Història
* Esborrany: 1997
* Primera edició: 1998 (normes, obligatòria/assessorament)
* Segona edició: 2004 (normes, obligatòria/assessorament)
* Tercera edició: 2012 (directives; regles, Decidible/Indecidible)
* Compliment MISRA: 2016, actualitzat 2020
Per a les dues primeres edicions de MISRA-C (1998 i 2004) totes les directrius es van considerar com a normes. Amb la publicació de MISRA C:2012 es va introduir una nova categoria de directrius: la Directiva el compliment de la qual està més obert a la interpretació, o es refereix a qüestions de procés o procediment.
Tot i que originàriament s'adreçava específicament a la indústria de l'automòbil, MISRA C ha evolucionat com un model àmpliament acceptat per a les millors pràctiques per part de desenvolupadors líders en sectors com l'automoció, l'aeroespacial, les telecomunicacions, els dispositius mèdics, la defensa, el ferrocarril i altres. Per exemple:
* Els estàndards de codificació C++ del projecte Joint Strike Fighter es basen en MISRA-C:1998.
* Els estàndards de codificació C del Jet Propulsion Laboratory de la NASA es basen en MISRA-C:2004.
* La norma ISO 26262 Seguretat funcional - Vehicles de carretera cita MISRA C com un subconjunt adequat del llenguatge C:
** ISO 26262-6:2011 Part 6: Desenvolupament de productes a nivell de programari cita MISRA-C:2004 i MISRA AC AGC.
** ISO 26262-6:2018 Part 6: Desenvolupament de productes a nivell de programari cita MISRA C:2012.
* L'especificació general de programari AUTOSAR (SRS_BSW_00007) també cita MISRA C:
** L'especificació general de programari AUTOSAR 4.2 requereix que si la implementació del mòdul BSW està escrita en llenguatge C, s'ajustarà a l'estàndard MISRA C:2004.
** L'especificació general de programari AUTOSAR 4.3 requereix que si la implementació del mòdul BSW està escrita en llenguatge C, s'ajustarà a l'estàndard MISRA C:2012.

## Referències

* ↑ «MISRA C - CodeDocs» (en anglès). https://codedocs.org/what-is/misra-c.+[Consulta: 25 agost 2022].
* ↑ In spring 1997 software engineers at the Austin Rover Group (ARG) sent a draft C coding standard to Programming Research Ltd (PRL) for review. The review was performed by PRL's then senior consultant, David Blyth, who proposed replacing the draft with an appreciably stronger set of coding rules. Those rules, with minor changes, formed the basis of the first edition of MISRA C.
* ↑ «What Is MISRA C? – A Safe and Secure Coding Standard for Embedded Software» (en anglès). https://www.mathworks.com.+[Consulta: 25 agost 2022].
* ↑ «Joint Strike Fighter Air Vehicle C++ Coding Standards» (en anglès). http://www.stroustrup.com.+[Consulta: 16 juliol 2019].
* ↑ «NASA JPC C Coding Standards» (en anglès). https://andrewbanks.com.+[Consulta: 16 juliol 2019].
* ↑ «ISO 26262-6:2011 Road vehicles -- Functional safety -- Part 6: Product development at the software level» (en anglès). iso.org. ISO. [Consulta: 16 juliol 2019].
* ↑ «ISO 26262-6:2018 Road vehicles -- Functional safety -- Part 6: Product development at the software level». iso.org. ISO. [Consulta: 16 juliol 2019].
* ↑ «AUTOSAR 4.2 General Software Specification» (en anglès). autosar.org. Arxivat de l'original el 2018-09-20. [Consulta: 16 juliol 2019].
* ↑ «AUTOSAR 4.3 General Specification of Basic Software Modules» (en anglès). autosar.org. AutoSAR, 30-11-2016. Arxivat de l'original el 2018-09-20. [Consulta: 16 juliol 2019].