Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Reference implementation

From Wikipedia, the free encyclopedia
Implementation of a specification which serves as an example
Look upreference implementation in Wiktionary, the free dictionary.

In thesoftware development process, areference implementation (or, less frequently,sample implementation ormodel implementation) is a program that implements all requirements from a corresponding specification. The reference implementation often accompanies atechnical standard, and demonstrates what should be considered the "correct" or what must^ the behavior of any other implementation of it.

Characteristics and examples

[edit]

Reference implementations of algorithms, for instancecryptographic algorithms, are often the result or the input ofstandardization processes. In this function they are often dedicated to thepublic domain with theirsource code aspublic domain software. Examples are the firstCERN's httpd,[1]Serpent cipher,base64 variants,[2] andSHA-3.[3] TheOpenwall Project maintains a list of several algorithms with their referencesource code in the public domain.[4]

A reference implementation may or may not be production quality. For example, theFraunhofer reference implementation of theMP3 standard usually does not compare favorably to other common implementations, such asLAME, in listening tests that determine sound quality.[5] In contrast,CPython, the reference implementation of thePython programming language,[6] is also the implementation most widely used in production.

Testing

[edit]

Testing the implementation-vs-specification relationship further enhances theproduction's inter-process efficiencies:

A reference implementation is, in general, an implementation of a specification to be used as a definitive interpretation for that specification. During the development of the ... conformance test suite, at least one relatively trusted implementation of each interface is necessary to (1) discover errors or ambiguities in the specification, and (2) validate the correct functioning of the test suite.[7]

Characteristics of a Reference Implementation:

  1. Developed concurrently with the specification and test suite;
  2. Verifies that specification is implementable;
  3. Enables the test suite to be tested;
  4. Serves as a Gold Standard against which other implementations can be measured;
  5. Helps to clarify the intent of the specification in situations whereconformance tests are inadequate[8]

Notes

[edit]
1.^MUST according to theRFC 2119

References

[edit]
  1. ^Smith, Tim; Flückiger, François."Licensing the Web: For everyone".CERN.Archived from the original on 2021-12-10. Retrieved2014-08-17.
  2. ^Devolve, Chris (2005-11-20)."libb64: Base64 Encoding/Decoding Routines".SourceForge.Archived from the original on 2010-07-30. Retrieved2016-02-06.
  3. ^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. Archived fromthe original(ZIP) on 2013-09-30. Retrieved2016-02-06.The Keccak sponge function, designed by: Bertoni, Guido; Daemen, Joan; Peeters, Michaël; Van Assche, Gilles. For more information, feedback or questions, please refer to our website: keccak.noekeon.org/ / Implementation by the designers, hereby denoted as "the implementer". / To the extent possible under law, the implementer has waived all copyright and related or neighboring rights to the source code in this file. creativecommons.org/publicdomain/zero/1.0/
  4. ^solar (2009-11-05)."Source code snippets and frameworks placed in the public domain".Openwall Community Wiki.Archived from the original on 2019-01-26. Retrieved2017-11-16.
  5. ^Daulton, Steve (2019-06-11)."Media Info doesn't match Format Options selected for Exported MP3's - #6 by steve - Windows".Audacity Forum.Archived from the original on 2023-12-02. Retrieved2024-09-05.
  6. ^Snow, Eric (2012-04-26)."PEP 421 – Adding sys.implementation".peps.python.org.Python Software Foundation (which owns "python.org"). Motivation.Archived from the original on 2022-04-11. Retrieved2017-01-06.For a number of years now, the distinction between Python-the-language and CPython (the reference implementation) has been growing. Most of this change is due to the emergence of Jython, IronPython, and PyPy as viable alternate implementations of Python.
  7. ^Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003-03-26)."Requirements for GSC-IS Reference Implementations"(PDF).National Institute of Standards and Technology, Information Technology Laboratory. Archived fromthe original(PDF) on 2006-09-28. Retrieved2006-07-22.
  8. ^Curran, Patrick (2003-12-10)."Conformance Testing: An Industry Perspective"(PDF).National Institute of Standards and Technology.Sun Microsystems. Archived fromthe original(PDF) on 2003-12-19. Retrieved2006-07-22.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Reference_implementation&oldid=1324448731"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp