From Surf Wiki (app.surf) — the open knowledge base
Reference implementation
Implementation of a specification which serves as an example
Implementation of a specification which serves as an example
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" or what must the 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, Serpent cipher, base64 variants, and SHA-3. The Openwall Project maintains a list of several algorithms with their reference source code in the public domain.
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, is also the implementation most widely used in production.
Testing
Testing the implementation-vs-specification relationship further enhances the production's inter-process efficiencies:
- Developed concurrently with the specification and test suite;
- Verifies that specification is implementable;
- Enables the test suite to be tested;
- Serves as a Gold Standard against which other implementations can be measured;
- Helps to clarify the intent of the specification in situations where conformance tests are inadequate}}
Notes
:1. MUST according to the RFC 2119
References
References
- Smith, Tim. "Licensing the Web: For everyone".
- Devolve, Chris. (2005-11-20). "libb64: Base64 Encoding/Decoding Routines".
- Bertoni, Guido. (2013-02-27). "KeccakReferenceAndOptimized-3.2.zip".
- (2009-11-05). "Source code snippets and frameworks placed in the public domain".
- Daulton, Steve. (2019-06-11). "Media Info doesn't match Format Options selected for Exported MP3's - #6 by steve - Windows".
- Snow, Eric. (2012-04-26). "PEP 421 {{ndash}} Adding sys.implementation". [[Python Software Foundation]] (which owns "python.org").
- Dalci, Eric. (2003-03-26). "Requirements for GSC-IS Reference Implementations".
- Curran, Patrick. (2003-12-10). "Conformance Testing: An Industry Perspective". [[Sun Microsystems]].
This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.
Ask Mako anything about Reference implementation — get instant answers, deeper analysis, and related topics.
Research with MakoFree with your Surf account
Create a free account to save articles, ask Mako questions, and organize your research.
Sign up freeThis content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.
Report