{{위키데이터 속성 추적}}
'''MISRA-C'''는 MISRA(Motor Industry Software Reliability Association)에서 개발된 C 프로그래밍에 대한 개발 표준이다. "MISRA-C"의 목적은 ISO C 언어로 작성된 임베디드 시스템의 코드 안전성, 호환성, 신뢰성이다. C++언어에 대한 가이드라인으로는 MISRA C++가 존재한다.

"MISRA-C"는 자동차 산업으로부터 작성된 모델이지만, 자동차 산업 이외의 산업에 다양하게 쓰이고 있다. "MISRA-C"는 우주/항공, 의료장비, 국방, 철도 등 다양한 산업에서 Best Practice로서 광범위하게 적용되는 가이드라인이라고 할 수 있다.<ref>http://www.programmingresearch.com/QAMISRA.html</ref>

"MISRA-C"의 초판, "Guidelines for the use of the C language in vehicle based software"은 1998년에 출간되었으며, 공식적으로 MISRA-C:1998 로 알려져 있다.<ref>{{웹 인용 |url=http://www.misra-c.com/Activities/MISRAC/tabid/160/Default.aspx |제목=보관된 사본 |확인날짜=2012-02-07 |archive-date=2017-06-07 |archive-url=https://web.archive.org/web/20170607124934/https://www.misra-c.com/Activities/MISRAC/tabid/160/Default.aspx |url-status= }}</ref>

"MISRA-C"의 세컨드 에디션, "Guidelines for the use of the C language in critical systems"은 2004년에 출간되었고, MISRA-C:2004로 잘 알려져 있다. 이 MISRA-C:2004는 기존에 여러 가지 의미를 동시에 담은 룰이 정확하게 하나의 평가 지표들을 가질 수 있도록 분리되었고, 개발에 적합하지 않은 룰은 제거되었다.

ISO-C99를 반영하기 위한 "MISRA-C"의 다음 버전을 위한 작업이 현재 진행 중이다.<ref>http://demo.electronicdesign.com/dev-tools/misra-c2012-plenty-good-reasons-change{{깨진 링크|url=http://demo.electronicdesign.com/dev-tools/misra-c2012-plenty-good-reasons-change }}</ref>

MISRA-C 가이드라인 문서는 ISO, BSI Group, RTCA와 같은 곳에서 유료로 제공된다.<ref>{{웹 인용 |url=http://www.misra.org.uk/Buyonline/tabid/58/Default.aspx |제목=보관된 사본 |확인날짜=2012-02-07 |archive-date=2011-12-30 |archive-url=https://web.archive.org/web/20111230121701/http://misra.org.uk/Buyonline/tabid/58/Default.aspx |url-status= }}</ref>

== 룰 ==

MISRA-C:1998은 총 127개의 룰이 있으며, 93개의 필수 룰과 34개의 권고 룰로 구성되어 있다. 룰 번호는 1번부터 127번 형식으로 구성되어 있다.

MISRA-C:2004는 총 141개의 룰이 있으며, 121개의 필수 룰과 20개의 권고 룰로 구성되어 있다. 각각의 룰들은 "Environment"부터 "Run-time failure"까지 21개의 그룹으로 구성되어 있고 넘버링은 1.1부터 21.1까지 각각의 그룹별로 이루어져 있다.

== 도구 ==

MISRA-C를 만족하기 위한 수많은 소프트웨어 툴이 존재한다. 하지만 어떠한 도구도 MISRA-C를 100% 만족할 수는 없다.

그 이유는, MISRA-C의 룰에서는 반드시 사람이 해야만 하는 내용이 포함되어 있기 때문이다.

;MISRA-C 만족을 위한 코드 분석 도구
* [https://www.iar.com/ko/products/c-stat IAR C-STAT : MISRA-C, CERT, CWE]
* [http://www.hancommds.com/solutions/?no=329 한컴MDS QAC, Code Inspection, MISRA-C]
* [https://www.sonarsource.com/why-us/products/codeanalyzers/sonarcfamilyforcpp/rules-cpp.html#MISRA SonarSource SonarQube]{{깨진 링크|url=https://www.sonarsource.com/why-us/products/codeanalyzers/sonarcfamilyforcpp/rules-cpp.html }}
* [http://www.microsystem.kr Synopsys Coverity]{{깨진 링크|url=http://www.microsystem.kr/ }}
* [https://web.archive.org/web/20140319145132/http://www.suresofttech.com/products/code-inspector/ Suresoft Technologies, Inc. Code Inspector]
* [http://www.soft4soft.com/ 소프트4소프트, RESORT for C, MISRA-C]
* [http://www.mathworks.co.kr/products/polyspace/ MathWorks, Polyspace, MISRA-C]
* [http://www.programmingresearch.com/qac_main.html PRQA QAC]
* [http://www.fasoo.com SPARROW QCE]
== 같이 보기 ==
* [[프로그래밍 스타일]]
== 참고자료 ==

<references/>

== 외부 링크 ==

* {{공식 웹사이트}}
* {{웹 인용
 |url          = http://www.embedded.com/columns/beginerscorner/9900659?_requestid=427335
 |title        = Introduction to MISRA C
 |publisher    = embedded.com
 |확인날짜 = 2011년 12월 29일
 |보존url    = https://www.webcitation.org/67jt2mUH3?url=http://eetimes.com/discussion/beginner-s-corner/4023981/Introduction-to-MISRA-C
 |보존날짜 = 2012년 5월 17일
 |url-status = dead
}}
* {{웹 인용
 |url          = http://electronicdesign.com/Articles/Index.cfm?AD=1&ArticleID=2824
 |title        = MISRA C: Safer Is Better
 |publisher    = electronicdesign.com
 |확인날짜 = 2011년 12월 29일
 |보존url    = https://www.webcitation.org/67jt4J5L8?url=http://electronicdesign.com/article/embedded-software/misra-c-safer-is-better2824
 |보존날짜 = 2012년 5월 17일
 |url-status = dead
}}
* {{웹 인용
 |url          = http://www.iar.com/website1/1.0.1.0/474/1/index.php
 |title        = MISRA C — Some key rules to make embedded systems safer
 |publisher    = iar.com
 |확인날짜 = 2012년 2월 7일
 |보존url    = https://web.archive.org/web/20110720163210/http://www.iar.com/website1/1.0.1.0/474/1/index.php
 |보존날짜 = 2011년 7월 20일
 |url-status = dead
}}
* {{웹 인용
      | url       = http://www.leshatton.org/index_SA.html
      | title     = MISRA C papers
      | author    = [[Software reliability]] expert [[Les Hatton]]
      | publisher = leshatton.org
  }}
* {{웹 인용
      | url       = http://www.knosof.co.uk/misracom.html
      | title     = Commentary on the first edition of the MISRA C guidelines
      | publisher = knosof.co.uk
  }}
* {{웹 인용
 |url          = http://johndayautomotivelectronics.com/?p=505
 |title        = Automating Compliance to MISRA C/C++ Standards
 |publisher    = johndayautomotivelectronics.com
 |확인날짜 = 2009년 10월 12일
 |보존url    = https://www.webcitation.org/67jt62E1w?url=http://johndayautomotivelectronics.com/?p=505
 |보존날짜 = 2012년 5월 17일
 |url-status = dead
}}

{{C 프로그래밍 언어}}
{{전거 통제}}
{{기본정렬:Misra C}}

[[분류:C 프로그래밍 언어]]
[[분류:컴퓨터 표준]]
[[분류:C 프로그래밍 언어 계열]]