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 RI software to serve in the academic cause of pure knowledge, on a more pragmatic level they are generally intended to familiarize the market with a spec so that developers will be more likely to purchase or develop commercial implementations of the spec.
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:
|
The reference implementation may or may not be of production quality. The Fraunhofer reference implementation of MP3 is considered of lower encoding quality than many other implementations, such as LAME. 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 is referenced by great deal of Java EE training literature, but it cannot be licensed for production use. However, the Sun Java System Application Server is considered by some to be nothing more than the RI server with a different licensing agreement.