• スペシャル
  • 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は、安全で分かりやすく、保守性が高い

関連タグ


関連コンテンツ

PR

処理に失敗しました

トレンドタグ

おすすめユーザー

会員登録で動画、資料に使えるホワイトペーパー、オンラインセミナー年間500本など、会員限定記事が​閲覧できる!​

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます