エンベデッドシステムスペシャリスト 2018年 午前2 問21
問題文
MISRA-Cの説明として、適切なものはどれか。
選択肢
ア:オブジェクト指向の機能をもち、スマートフォンの開発などに使用されている、C言語の上位互換言語
イ:可変長配列、複素数型などをサポートする、ISOが制定したC言語の規格
ウ:協調設計(コデザイン)でシステムをシミュレートするために使用する、C++を利用したシステム記述言語
エ:車載システムの品質向上を目的に制定された、C言語実装法のガイドライン(正解)
🔒 解説は解答すると表示されます
MISRA-Cの役割【午前2解説】
正解の理由
MISRA-Cは、主に自動車などの組込みシステムで、C言語のプログラムを安全で信頼性の高いものにするためのガイドラインです。使用する言語機能やコーディング方法にルールを設け、誤りやすい記述を避けることを目指します。
したがって、「車載システムの品質向上を目的に制定された、C言語実装法のガイドライン」と説明するエが適切です。
解法ステップ
- 「MISRA-C」という名称から、C言語に関係する規約・ガイドラインを問う問題だと捉えます。
- MISRA-Cは、特に自動車などの安全性・信頼性が重要な分野で使われると確認します。
- C言語そのものの規格や、C++を用いた別の言語と区別します。
- 車載システムとC言語の実装ガイドラインを結び付けているエを選びます。
選択肢別の誤答解説
- ア:誤りです。 C言語の上位互換言語として知られるのはC++です。MISRA-Cは新しいプログラミング言語ではなく、C言語の記述方法に関するガイドラインです。
- イ:誤りです。 可変長配列や複素数型は、C言語の規格で扱われる機能です。これはC言語の規格の説明であり、MISRA-Cの説明ではありません。
- ウ:誤りです。 C++を利用したシステム記述言語の説明です。MISRA-CはC言語を対象としたガイドラインであり、システムをシミュレートするための言語ではありません。
- エ:適切です。 車載システムなどの品質向上を目的として、C言語の安全で信頼性の高い実装を促すガイドラインです。
よくある誤解
-
MISRA-CはC言語の別規格だと思う
C言語そのものの規格ではなく、C言語をどのように使うかを示すガイドラインです。 -
MISRA-Cに従えば、プログラムの安全性が保証されると思う
ガイドラインへの準拠は品質向上に役立ちますが、それだけでシステム全体の安全性が保証されるわけではありません。設計やテストなども重要です。 -
「車載向け」なので、自動車以外では使われないと思う
車載分野で広く知られていますが、安全性や信頼性が重視されるほかの組込みシステムでも活用されます。
補足コラム
MISRA-Cでは、危険な動作や処理系による動作の違いを招きやすい書き方を避けるため、コーディング上のルールが定められています。開発現場では、静的解析ツールなどを使ってルール違反を検出することもあります。
なお、C言語を対象とする「MISRA-C」に対し、C++を対象とするガイドラインとして「MISRA C++」もあります。対象言語を見分けると、関連する選択肢を整理しやすくなります。
FAQ
Q. MISRA-Cは、C言語のISO規格ですか?
A. いいえ。ISOが定めるC言語規格とは異なり、C言語の実装方法に関するガイドラインです。
A. いいえ。ISOが定めるC言語規格とは異なり、C言語の実装方法に関するガイドラインです。
Q. MISRA-Cの主な目的は何ですか?
A. C言語によるソフトウェアの品質や信頼性を高め、誤りや危険につながりやすい記述を避けることです。
A. C言語によるソフトウェアの品質や信頼性を高め、誤りや危険につながりやすい記述を避けることです。
Q. MISRA-CとMISRA C++は何が違いますか?
A. 主な違いは対象言語です。MISRA-CはC言語、MISRA C++はC++を対象とします。
A. 主な違いは対象言語です。MISRA-CはC言語、MISRA C++はC++を対象とします。
関連キーワード: MISRA-C、C言語、コーディングガイドライン、車載システム、静的解析

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

