Loading article…
ソフトウェア開発プロセスにおいて、リファレンス実装(または、あまり一般的ではないが、サンプル実装またはモデル実装) は、対応する仕様のすべての要件を実装するプログラムです。リファレンス実装は、多くの場合、技術標準に付随し、その他の実装の「正しい」動作と見なされるべき動作を示します。
特徴と例
暗号アルゴリズムなどのアルゴリズムの参照実装は、標準化プロセスの結果または入力であることが多い。この機能では、ソースコードがパブリックドメインソフトウェアとしてパブリックドメインに提供されることが多い。例としては、最初のCERNのhttpd [1]、Serpent暗号、base64バリアント[2]、SHA-3 [3]などがある。Openwallプロジェクトは、パブリックドメインの参照ソースコードを持ついくつかのアルゴリズムのリストを維持している。 [4]
リファレンス実装は、製品品質である場合もあれば、そうでない場合もあります。たとえば、MP3標準のFraunhoferリファレンス実装は、音質を決定するリスニングテストでは、通常、LAMEなどの他の一般的な実装と比較して劣っています。 [5]対照的に、Pythonプログラミング言語のリファレンス実装であるCPython [ 6]も、製品で最も広く使用されている実装です。
テスト
実装と仕様の関係をテストすると、生産のプロセス間効率がさらに向上します。
参照実装とは、一般的に、その仕様の最終的な解釈として使用される仕様の実装です。...適合性テストスイートの開発中は、(1)仕様のエラーや曖昧さを発見し、(2)テストスイートの正しい機能を検証するために、各インターフェースの比較的信頼できる実装が少なくとも1つ必要です。[7]
リファレンス実装の特徴:
- 仕様とテスト スイートと同時に開発されます。
- 仕様が実装可能であることを検証します。
- テスト スイートをテストできるようにします。
- 他の実装を評価するためのゴールド スタンダードとして機能します。
- 適合性テストが不十分な状況で仕様の意図を明確にするのに役立つ[8]
参考文献
- ^ Smith, Tim; Flückiger, François. 「Web のライセンス: すべての人のために」. CERN . 2021 年 12 月 10 日時点のオリジナルよりアーカイブ。2014年 8 月 17 日閲覧。
- ^ Devolve, Chris (2005-11-20). 「libb64: Base64 エンコード/デコード ルーチン」。SourceForge。2010-07-30にオリジナルからアーカイブ。2016-02-06に取得。
- ^ Bertoni, Guido; Daemen, Joan; Peeters, Michaël; Van Assche, Gilles (2013-02-27). "KeccakReferenceAndOptimized-3.2.zip" (ZIP) . keccak.noekeon.org . /KeccakReferenceAndOptimized/Sources/mainReference.c. 2013-09-30 にオリジナル(ZIP)からアーカイブ。 2016-02-06に取得。
Keccak スポンジ関数の設計者: Bertoni, Guido; Daemen, Joan; Peeters, Michaël; Van Assche, Gilles。 詳細情報、フィードバック、質問については、当社の Web サイトを参照してください: keccak.noekeon.org/ / 設計者による実装 (ここでは「実装者」と表記)。 / 法律で認められる範囲において、実装者はこのファイルのソースコードに対するすべての著作権および関連する権利または隣接する権利を放棄しています。creativecommons.org/publicdomain/zero/1.0/
- ^ solar (2009-11-05). 「パブリックドメインに配置されたソースコードスニペットとフレームワーク」。Openwall Community Wiki。2019年1月26日時点のオリジナルよりアーカイブ。 2017年11月16日閲覧。
- ^ Daulton, Steve (2019-06-11). 「メディア情報がエクスポートされた MP3 に選択されたフォーマット オプションと一致しない - #6 by steve - Windows」Audacity フォーラム。2023-12-02 にオリジナルからアーカイブ。2024-09-05に取得。
- ^ Snow, Eric (2012-04-26). 「PEP 421 – sys.implementation の追加」peps.python.org . Python Software Foundation (「python.org」を所有)。 動機。 2022-04-11 にオリジナルからアーカイブ。2017-01-06に取得。
ここ数年、Python 言語と CPython (リファレンス実装) の違いは大きくなっています。 この変化のほとんどは、Python の代替実装として Jython、IronPython、PyPy が登場したことによるものです。
- ^ Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003-03-26). 「GSC-IS リファレンス実装の要件」(PDF)。米国国立標準技術研究所、情報技術研究所。2006-09-28のオリジナル(PDF)からアーカイブ。2006-07-22に取得。
- ^ Curran, Patrick (2003-12-10). 「適合性テスト: 業界の視点」(PDF)。米国国立標準技術研究所。Sun Microsystems。2003-12-19のオリジナル(PDF)からアーカイブ。2006-07-22に取得。
