Reference implementation (computing)

From Wikipedia, the free encyclopedia

In computing, a reference implementation (or, infrequently, sample implementation) is a software example of a standard for use in helping others implement their own versions of the standard. A standard is much easier to understand with a working example in hand. The purpose of a reference implementation is generally to increase awareness and familiarization of the spec within the development community. While it is entirely possible for reference implementation (RI) software to serve in the academic cause of pure knowledge, on a more pragmatic level they are generally intended to familiarize developers and the market with a specification so that developers will be more likely to develop commercial implementations and users will be more likely to purchase conforming implementations.

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.[1]
[Characteristics of a] Reference Implementation: (1) Developed concurrently with spec and test suite; (2) Verifies that specification is implementable; (3) Enables the test suite to be tested; (4) Serves as Gold Standard against which other implementations can be measured; (5) Helps to clarify intent of specification where conformance tests are inadequate[2]

The 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. However, the X.Org reference implementation of the X Window System is not only ready for use, but is increasingly popular on open source Unix-like operating systems as-is; this is helped by the current version being a fork of the popular XFree86 implementation that X.Org then declared to be the reference implementation.

Reference implementations may also be prohibited by licensing for commercial use. The Sun Microsystems Java EE RI application server for example is referenced by great deal of Java EE training literature, but it cannot be licensed for production use.

[edit] References

  1. ^ Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003). Requirements for GSC-IS Reference Implementations. National Institute of Standards and Technology, Information Technology Laboratory. [1]
  2. ^ Curran, Patrick (2003). Conformance Testing: An Industry Perspective. Sun Microsystems. [2]