開閉ボタン
ユーザーメニュー
ユーザーメニューコンテンツ
ログイン

株式会社東陽テクニカ提供コンテンツ

  • スペシャル
  • 2016/01/05

組込み機器向けのコーディングに「MISRA C」が効果的な理由

車載製品のソフトウェアの安全性と信頼性を支援するために作られた団体「MISRA(Motor Industry Software Reliability Association)」。同団体は、C言語のためのソフトウェア設計標準規格「MISRA C」を開発したことでも知られている。なぜ組込み機器の開発にMISRA Cを活用するのがよいのか。C言語とはどう違うのか。MISRA C 研究会に所属するビースラッシュの宇野結氏が解説した。

MISRA Cのルールがもたらす数多くのメリット

photo
MISRA-C研究会(ビースラッシュ)宇野 結 氏
 MISRAは、車載製品のソフトウェアの安全性と信頼性を支援するために作られた団体だ。1998年に、C言語のためのソフトウェア設計標準規格「MISRA C」を開発したことでも知られている。MISRA Cはその後も改訂が重ねられ、現時点でMISRA C:2012が最新版となる。

 宇野氏が所属するMISRA-C研究会は、「MISRA Cを正しく理解し、実用的な形でまとめ、日本の組込み業界に紹介する」という目的で2002年に設立。参加メンバーは、規格の専門家やコンパイラ開発者、組込みソフトウェア開発者などで構成されている。

 もちろん宇野氏も、かつてパナソニックで、長年にわたりマイコン開発環境やCコンパイラなどの開発に従事してきた人物だ。東陽テクニカ主催のイベント「QAC User's Meeting 2015」に登壇した宇野氏は「MISRA Cが登場した当初、厳格なルールが多くあり、従来のC言語で開発するよりも大変という印象を持たれた方がいるかもしれない。しかし、そこにはポジティブな意図がある」と説明する。

 ここでいうポジティブな意図とは、まずMISRA Cのルールを守ってC言語を記述すれば、安全なコードが書けるということだ。たとえば最初に自動変数の初期化をせずにコードを書き始めてしまうと、MISRA-Cではルール違反になる。

 しかし、これをGCCにかけると、何事もなくソースがコンパイルされ、オブジェクトがつくれてしまう。次にソースコード静的解析ツール「QA・C」により問題点を調べると、「ルールに違反している」というメッセージが出る。「たとえGCCでコンパイルされても、それは安全なコードとは必ずしも言えません。MISRA Cに従って記述することによって、安全性が高くなるのです」。

 同様に、MISRA Cのルールを守っていれば、記述のミスも防げる。たとえば「==」と「=」、「&」と「&&」は意味が違うものだが、うっかり記述ミスをしてしまうこともある。しかし、これでもプログラム的には動いてしまう場合もあり、誰かが間違えて記述すると、あとあとまでバグが残ってしまう。「MISRA Cを使っていれば、こういったミスはルールに不適合になるため、きちんと問題が取り除かれます」。

 またMISRA Cならば、最終的に誤解されずに読みやすいコードになり、よい作法が身につくということもメリットと言える。

【次ページ】MISRA Cは、安全で分かりやすく、保守性が高い

組み込み・産業機械 ジャンルのトピックス

組み込み・産業機械 ジャンルのIT導入支援情報

PR

ビジネス+IT 会員登録で、会員限定コンテンツやメルマガを購読可能、スペシャルセミナーにもご招待!