組込み開発者におくるMISRA-C:2004 の商品レビュー
- ネタバレ
※このレビューにはネタバレを含みます
安全なシステムを作る際に、プログラムの検査は必要不可欠です。 特に、CPUに依存したプログラムを他のCPUに移植する際に気を付けるべきことが体系的に整理されてきませんでした。 Safer-Cという本で、その課題を指摘しています。 CPUの規格がないため、その上で動作するC言語は、各CPUの仕様の違いを生かしたまま、効率的なソフトウェアを書けるようにしています。 その反面、CPUの仕様で公開されていない部分に関する動作が、C言語でどのように処理しているか公開されていない場合があります。 また「Cプログラミングの落とし穴」では、C言語そのものの課題を指摘しています。 MISRA-Cの規則でも、「Cプログラミングの落とし穴」を参照している規則があり、付録で一覧になっています。 Safer-CとCプログラミングの落とし穴の2つの情報源をもとに、さまざまな知見を集め、体系化したものが、1998年版のMISRA-Cです。1998年版のMISRA-Cの解説本も日本規格協会から発行されています。 MISRA-C:1998年版に、日本からの意見を含めて改訂したものが2004年版のMISRA-Cです。この本は、MISRA-C:2004年版の解説本です。 SECから発行されたコーディングガイドラインも、MMISRA-Cは強く意識していて、関連する規則は参照があります。 MISRA-CはC言語のコーディングガイドですが、スタイルに相当する部分はほとんどありません。また命名規則の具体例もありません。スタイルガイドを作る上では参考になりますが、スタイルガイドではありません。 また、この規則に従った方が安全でないプログラムが書けてしまう場合があるかもしれません。 そのため、逸脱の手続きを取ることの重要性を強調しています。 MISRA-Cの解説では、サンプルプログラムがあるため、これを動くプログラムにすることによって、より内容を正確につかむことができるかもしれません。 ps. この本は、規則は自動車技術会で翻訳してテクニカルレポートして出版している部分を基礎にした改訂版ですが、解説は独自の文章です。そのため、これは翻訳書ではないようです。 GCCのようなオープンソースのコンパイラの出現により、移植性、可搬性の状況は変わるでしょうか。 C言語の国際規格への適合性の試験のプログラムはオープンソースでは公開されておらず、GCCの各CPUへの移植の度合いを正確に評価されているでしょうか。 関西学院大学では、SRAと協力して、GCCのTestSuiteを開発されています。 ルネサスのM32Rのシミュレーションは提供されていますが、他のCPUの対応はこれからのようです。 また、他のCPUのGCCの自動生成の研究もされているそうです。その結果の検証にGCC TestSuiteを用いているそうです。 GCC TestSuiteは、ISO/IEC9899の適合試験全部を網羅している訳ではないかもしれません。
Posted by
- 1