MISRA-Cとは?みすらしー
MISRA-Cとは、C言語のうち、処理系によって振る舞いが変わりうる書き方を使わせないために定められた規則集。動的メモリ確保、再帰、goto、暗黙の型変換などを禁止または制限し、適合しているかを静的解析ツールが機械的に判定できる形で書き下してある。車載を出発点に、信頼性が問われる組込み分野で広く参照されている。
最終更新:2026-10-06
この語が出る過去問を解く →背景
C言語の規格は、処理系に実装の自由を残すために多くの動作を未定義・未規定のまま置いている。同じソースでも処理系を変えれば違う動きをしうるということで、これは移植性の余地としては利点だが、人命に関わる機器では危険そのものになる。言語仕様を変えられない以上、使う側で書いてよい範囲を狭めるという解き方が採られ、自動車業界で整備されたものがいまでは他分野でも参照されている。
具体例
英国のMISRA(Motor Industry Software Reliability Association)が策定し、MISRA C:2012が広く使われている。Coverityやコンパイラ付属の解析機能が適合性検査に対応しており、「すべての条件文の本体は波括弧で囲む」「switch文には必ずdefaultを置く」といった規則を機械的に確かめられる。
試験での引っ掛け
文書としてのガイドラインであって、解析ツールでも認証制度でもない点をまず区別する。規則から外れること自体も想定されており、Requiredの規則でさえ理由を残す手続き(デビエーション)を踏めば逸脱できるので、「例外なく全規則を満たさなければ準拠と言えない」は誤り。準拠することと、言語レベルのメモリ安全性を得ることも別の話になる。
関連用語
出た過去問
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問21(IPA)
MISRA-Cの説明として、適切なものはどれか。
正解:車載システムの品質向上を目的に制定された、C言語実装法のガイドライン
要点:MISRA-Cは車載向けC言語コーディングのガイドライン
MISRA-Cは、英国の自動車業界団体MISRAが策定した、C言語を安全性が重要な組込みシステムで使うためのコーディングガイドラインである。処理系依存の動作や未定義動作を招きやすい書き方を禁止・制限するルール群からなり、静的解析ツールで適合を検査するのが一般的である。言語そのものではなく実装(記述)の指針である点が要点。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。