コンパイラ開発支援
C/C++コンパイラツールのコンサルティング・開発・検証

C/C++コンパイラ開発・カスタマイズなどを支援

長年培ってきたコンパイラ要素技術の知見を活かし、C/C++コンパイラツールのコンサルティング、開発、検証、エンドユーザ向け検証にて、お客様の製品開発を支援いたします。

自社コンパイラ製品の新規開発やバージョンアップ、エンドユーザに合わせたカスタマイズ対応などでお困りの際は、ぜひ日本ノーベルにご相談ください。

コンパイラ 開発支援メニュー

コンパイラ開発支援:コンサルティング(調査・分析)

C/C++コンパイラのフロントエンド(EDGやgcc、clangのベース部分など)は、同じ言語規格に対応しているものであっても、それぞれの字句解析や構文解析を行う部分の設計や実装は全く異なります。また自社製品のコンパイラ開発(改修)にこれらを組み込む場合、設計資料などは提供されていない場合も多く、その製品コードから挙動を解析する必要もございます。

例えば自社コンパイラにEDG製品を組み込んでいる場合、 C++言語コードで提供されていますが、これをgccで差し替えようとする場合は、gccはC言語コードで提供されているため、過去にEDG上にC++言語で実装した機能をC言語にて実装し直す必要があり、単純なコード移植では済みません。

「改修範囲やその規模」、「周辺ツールへの連携やアウトプットへの影響度調査」、「オミットしなければならない機能の有無」などの事前調査やご提案で、サポートいたします。

コンパイラ開発支援:開発(設計・実装)

新言語規格対応

コンパイラの対応言語規格を、C99→C11、C++03→C++17というように上げる場合には、ISOの言語規格そのものの深い知識も必要です。 日本ノーベルはISOのC++ワーキンググループにも参画しており、また長年「コンパイラ評価サービス」を提供させていることもあり、C/C++言語規格の知識が豊富なメンバーを要しております。

ポーティング

ツールが対応するホストの変更など、コンパイル機能とは直接関係ない部分についても、対象カーネルの制限などの影響調査から実装まで、対応いたします。

付加価値の追加:解析機能

静的解析ツールへのインプットとなる中間データの生成や、カバレッジ測定データの出力、コードの整形など、コンパイル中の内部データを利用して、エンドユーザに合わせた機能追加も可能です。

付加価値の追加:単体テスト生成機能

一般的なユニットテストのテンプレート生成だけではなく、ユーザーが用意したテストパラメータに従って、テスト条件や期待値を生成時に埋め込むといったカスタマイズなどもご相談ください。

周辺ツール開発

コンパイラのみならず、アセンブラやシミュレータといった関連ツールの開発などもサポートいたします。

コンパイラ開発支援:検証

テスト分析

設計・実装段階からコンパイラ開発に携わらせていただくことで、テスト観点や手法の妥当性、過剰になり過ぎないテストパターンの組み合わせなどを、お客様と共に構築いたします。

単体・結合テスト

設計・実装時の資料や知見から作成するホワイトボックステスト、それとは別に言語規格や一般的なC/C++言語のアルゴリズムを動作させる豊富なブラックボックステストが可能です。
テスト用C/C++コードの生成などの経験も豊富です。

日本ノーベルは1995年から「コンパイラ評価サービス」を提供しています。

負荷テスト

言語上の翻訳限界や、ファイル・コード量などといったコンパイラに高負荷がかかるような検査を実施いたします。

テスト自動化

Jenkinsなどのツールを用いたテストプロセスの自動化や、リグレッションテスト環境の構築、必要に応じて、Windowsやハードウェア自体の操作を自動化することも可能です。

操作の自動化については、日本ノーベルのテスト自動化ツールも参照ください。

コンパイラ開発支援:エンドユーザ向け検証

言語規格・品質検証

日本ノーベルの「コンパイラ評価サービス」にて、エンドユーザの条件や使い方などに合わせたコンパイラの品質検証を、ローコストにて提供できます。

ツールの機能安全対応

機能安全規格(ISO 26262など)で準拠が求められている、「システム開発ツールの品質妥当性」を示す根拠として、対象コンパイラの品質を検証し、ツール認定レポートとして提供いたします。
ユーザは、システム開発に用いるコンパイラツールが一定の品質妥当性を有することの根拠として、認定会社にこのレポートを提出することができます。

複数のお客様より、コンパイラツールの品質を示すエビデンスとして採用されております。

コンパイラ開発支援実績

EDG*、GCC、clangなどのコンパイラや静的解析ツールの開発

  • 新言語規格対応のための改修
  • カバレッジ計測のための中間言語出力機能の付与
  • ユニットテストの生成機能
  • プラットフォーム変更に伴うポーティング作業

「EDG」はEdison Design Group社の製品で、ソースコードの形で提供され、C、C++、Javaといったコンパイラで、字句解析、プリプロセッサ、構文解析、意味解析を行うためのフロントエンドです。

コンパイラ周辺ツールの開発支援

  • アセンブラやシミュレータなどの開発支援や、その品質検証作業

コンパイラの言語規格・品質の検証

  • 半導体ベンダー製品コンパイラの、言語規格や品質妥当性の第三者検証
  • 半導体ベンダー製品コンパイラの、独自機能(SIMD演算、固定/浮動小数点ライブラリなど)検証
  • 並列コンピューティング開発向けコンパイラの品質妥当性の第三者検証
  • エンドユーザの受入れ検査用エビデンス
  • ISO 26262やIEC 61508認定取得のための開発ツールの品質妥当性検証

作業条件・開発環境

作業機材・ソフトウェアライセンス

開発用PCやVisual Studioなどの一般的な機材などは弊社でご用意することも可能です。 EDGなどの特殊なツールライセンスなどに関しては、お客様の方でご用意いただくようお願いいたします。

作業場所・セキュリティ条件

必要に応じて、セキュリティエリアをご用意しての作業も可能です。 求められるセキュリティ条件などご相談ください。

お問い合わせ

質問、資料請求、お見積など
お気軽にお問い合わせください。

日本ノーベルでは1995年よりコンパイラ評価サービスを提供して参りました。 ANSI/ISOの規格に熟知しており、機能安全(ISO 26262)にも精通しております。

規格ならびに評価の視点を持ってコンパイラ開発を支援させていただくことにより、お客様への品質改善にも寄与できると考えております。

コンパイラ開発及び評価でお困りの際は、ぜひ日本ノーベルに、ご相談ください。