エンベデッドシステムスペシャリスト 2015年 午前2 問22
問題文
MISRA-Cの説明として、適切なものはどれか。
選択肢
ア:オブジェクト指向の機能をもち、スマートフォンの開発などに使用されている、C言語の上位互換言語
イ:可変長配列、複素数型などをサポートする、ISOが制定したC言語の規格
ウ:協調設計(コデザイン)でシステムをシミュレートするために使用する、C++を利用したシステム記述言語
エ:車載システムの品質向上を目的に制定された、C言語実装法のガイドライン(正解)
🔒 解説は解答すると表示されます
MISRA-Cガイドライン【午前2解説】
正解の理由
MISRA-Cは、車載システムなどの品質・安全性が重視される分野で、C言語を安全かつ信頼性の高い形で使用するためのガイドラインです。使用を避けるべき機能や、守るべきコーディング規則などを定めています。
したがって、車載システムの品質向上を目的に制定されたC言語実装法のガイドラインと説明するエが適切です。
解法ステップ
- 「MISRA-C」の「C」から、C言語に関する規約だと判断します。
- MISRA-Cは新しいプログラミング言語やC言語規格ではなく、C言語を使う際のガイドラインです。
- 特に車載システムなど、ソフトウェアの安全性・信頼性が重要な分野で利用されます。
- 以上から、エを選びます。
選択肢別の誤答解説
- ア:誤りです。 オブジェクト指向の機能を備え、C言語を拡張した言語の説明です。たとえばObjective-Cは、C言語をベースにオブジェクト指向機能を加えた言語で、iOSアプリ開発などで使われてきました。MISRA-Cはプログラミング言語ではありません。
- イ:誤りです。 可変長配列や複素数型は、ISOが制定したC言語規格の機能に関する説明です。MISRA-CはC言語規格そのものではなく、C言語の利用方法を定めるガイドラインです。
- ウ:誤りです。 C++を基礎とするシステム記述言語SystemCの説明です。システムの設計やシミュレーションに利用されますが、MISRA-Cとは異なります。
- エ:正しいです。 車載システムなどの品質向上を目的とした、C言語のコーディングガイドラインです。
よくある誤解
- MISRA-CをC言語の規格だと思う
ISOが定めるC言語規格とは別のものです。MISRA-Cは、C言語をどのように記述・利用するかを示すガイドラインです。 - MISRA-Cをプログラミング言語だと思う
MISRA-Cという言語があるわけではありません。C言語のプログラムが守るべき規則をまとめたものです。 - 車載専用の規則だと思う
車載分野で広く知られていますが、重要なのは安全性や信頼性が求められるソフトウェアで、C言語の不適切な使い方を避けることです。
補足コラム
MISRA-Cの規則には、誤解を招きやすい記述や、処理系によって動作が変わりやすい記述を避けるためのものがあります。開発現場では、規則に沿っているかを静的解析ツールで確認することもあります。
FAQ
Q. MISRA-Cに従えば、プログラムの安全性は保証されますか?
A. いいえ。ガイドラインへの準拠は品質向上に役立ちますが、それだけで安全性が保証されるわけではありません。設計・テスト・運用など、ほかの対策も必要です。
A. いいえ。ガイドラインへの準拠は品質向上に役立ちますが、それだけで安全性が保証されるわけではありません。設計・テスト・運用など、ほかの対策も必要です。
Q. MISRA-CとC言語規格は、どちらか一方に従えばよいですか?
A. 役割が異なります。C言語規格は言語の仕様を定め、MISRA-CはC言語を安全・適切に使うための規則を示します。開発では、採用する規格やガイドラインを確認して運用します。
A. 役割が異なります。C言語規格は言語の仕様を定め、MISRA-CはC言語を安全・適切に使うための規則を示します。開発では、採用する規格やガイドラインを確認して運用します。
関連キーワード: C言語、コーディング規約、車載システム、静的解析、SystemC

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

