Reference implementation explained

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

Characteristics and examples

Reference implementations of algorithms, for instance cryptographic algorithms, are often the result or the input of standardization processes. In this function they are often dedicated to the public domain with their source code as public domain software. Examples are the first CERN's httpd,[1] Serpent cipher, base64 variants,[2] and SHA-3.[3] The Openwall Project maintains a list of several algorithms with their reference source code in the public domain.[4]

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

Testing

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

Notes and References

  1. https://web.archive.org/web/20140817185526/http://home.web.cern.ch/topics/birth-web/licensing-web The birth of the web Licensing the web
  2. http://libb64.sourceforge.net/ libb64
  3. https://web.archive.org/web/20170630041850/http://keccak.noekeon.org/KeccakReferenceAndOptimized-3.2.zip KeccakReferenceAndOptimized-3.2.zip
  4. http://openwall.info/wiki/people/solar/software/public-domain-source-code Source code snippets and frameworks placed in the public domain
  5. Web site: Snow . Eric . PEP 421 -- Adding sys.implementation . Python.org . Python Software Foundation . 6 January 2017 . 2012-01-26 . For a number of years now, the distinction between Python-the-language and CPython (the reference implementation) has been growing. . https://web.archive.org/web/20170107095832/https://www.python.org/dev/peps/pep-0421/#motivation . 7 January 2017 . dead . dmy-all .