Skip to content
Surf Wiki
Save to docs
technology/software-engineering

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:

  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 where conformance tests are inadequate}}

Notes

:1. MUST according to the RFC 2119

References

References

  1. Smith, Tim. "Licensing the Web: For everyone".
  2. Devolve, Chris. (2005-11-20). "libb64: Base64 Encoding/Decoding Routines".
  3. Bertoni, Guido. (2013-02-27). "KeccakReferenceAndOptimized-3.2.zip".
  4. (2009-11-05). "Source code snippets and frameworks placed in the public domain".
  5. Daulton, Steve. (2019-06-11). "Media Info doesn't match Format Options selected for Exported MP3's - #6 by steve - Windows".
  6. Snow, Eric. (2012-04-26). "PEP 421 {{ndash}} Adding sys.implementation". [[Python Software Foundation]] (which owns "python.org").
  7. Dalci, Eric. (2003-03-26). "Requirements for GSC-IS Reference Implementations".
  8. Curran, Patrick. (2003-12-10). "Conformance Testing: An Industry Perspective". [[Sun Microsystems]].
Info: Wikipedia Source

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.

Want to explore this topic further?

Ask Mako anything about Reference implementation — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This 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