リファレンス実装
リファレンス実装(リファレンスじっそう、英: reference implementation)は、なんらかの機能を実現するハードウェアまたはソフトウェアであり、他者がそれを参考にして独自に実装することを助ける目的で作られたものを言う。参考実装(さんこうじっそう)とも呼ばれる。
概要
[編集]ハードウェアやソフトウェアの仕様は何らかの動く実例があった方が理解しやすい。リファレンス実装の一般的な目的は、開発者に対してその仕様を少しでも知ってもらうことである。純粋に学究的目的で提供されることもあるが、より実用的なリファレンス実装の場合は市場での知名度を上げることを目的としており、場合によってはそのリファレンス実装を買ってもらうか、リファレンス実装を提供したハードウェアもしくはソフトウェアを商用に実装してもらうことが狙いである。
- リファレンス実装は一般にある仕様を実装することによって定義を決定するのに使用される。認証試験を開発する際に以下の点で信用できる実装が各インターフェイスに必須である。(1)仕様の間違いや不正確さを発見するため。(2)試験プログラムにバグがないことを確認するため。[1]
- リファレンス実装の特徴は以下の通りである。
- 仕様およびテストと並行して開発される。
- 仕様が実装可能かどうか確認するのに使われる。
- テストプログラム自体をテストすることができる。
- 他の実装との比較基準とすることができる。
- テストプログラムでは評価できない仕様の詳細を明確化できる。[2]
ハードウェアでの例
[編集]NVIDIAやAMDは自社のGPUを拡販するために、グラフィックスカードメーカーに対してリファレンス実装を提供し、グラフィックスカード開発に協力している。
ソフトウェアでの例
[編集]リファレンス実装は製品レベルの品質でない場合もある。フラウンホーファーのMP3のリファレンス実装はLAMEのような他の実装に比較して品質が低い。一方X Window SystemのX.Org Foundationによるリファレンス実装は十分実用的であるだけでなく、現在のオープンソースのUNIX系オペレーティングシステムでも使われ続けている(これは、X.Org が人気のあったXFree86から派生させてリファレンス実装を宣言したことに端を発している)。
リファレンス実装は商用ライセンス利用を防ぐ目的で使用されることもある。サン・マイクロシステムズのJava EEアプリケーションサーバのリファレンス実装は、Java EEを学ぶ目的では使用可能であるが、製品として商用利用することはできないライセンスになっていた。しかし、サンのアプリケーションサーバ製品はリファレンス実装と全く同じ機能を有していて、ライセンスだけが異なっていた。