Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Characteristics and examples  





2 Testing  





3 References  














Reference implementation






Català
Čeština
Deutsch
Español
Français

Italiano
Magyar
Nederlands

Português
Русский
Tiếng Vit

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


In the software development process, a reference implementation (or, less frequently, sample implementationormodel 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

[edit]

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 codeaspublic 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.[citation needed] In contrast, CPython, the reference implementation of the Python programming language,[5] is also the implementation most widely used in production.

Testing

[edit]

Testing the implementation-vs-specification relationship further enhances the production'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.[6]

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

References

[edit]
  • ^ libb64 Archived 2021-01-12 at the Wayback Machine on sourceforge
  • ^ KeccakReferenceAndOptimized-3.2.zip mainReference.c "The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, feedback or questions, please refer to our website: http://keccak.noekeon.org/Implementation[permanent dead link] 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. https://creativecommons.org/publicdomain/zero/1.0/"
  • ^ Source code snippets and frameworks placed in the public domain Archived 2020-09-25 at the Wayback Machineonopenwall.info
  • ^ Snow, Eric (26 January 2012). "PEP 421 -- Adding sys.implementation". Python.org. Python Software Foundation. Archived from the original on 7 January 2017. Retrieved 6 January 2017. For a number of years now, the distinction between Python-the-language and CPython (the reference implementation) has been growing.
  • ^ Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003). Requirements for GSC-IS Reference Implementations. National Institute of Standards and Technology, Information Technology Laboratory. Requirements for GSC-IS Reference Implementations
  • ^ Curran, Patrick (2003). Conformance Testing: An Industry Perspective. Sun Microsystems. [1]

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Reference_implementation&oldid=1225073383"

    Categories: 
    Test items
    Software engineering terminology
    Hidden categories: 
    Webarchive template wayback links
    All articles with dead external links
    Articles with dead external links from April 2018
    Articles with permanently dead external links
    Articles with short description
    Short description is different from Wikidata
    All articles with unsourced statements
    Articles with unsourced statements from January 2012
     



    This page was last edited on 22 May 2024, at 06:10 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki