Recently, a colleague made a statement about a software distribution being "the reference implementation" for a protocol. My understanding of what a "reference implementation" is, comes from an old document by Tomasz Mrugalski and David Hankins as part of the ISC-DHCP software distribution which says: > 2. Definition: Reference Implementation > ISC DHCP, much like its other cousins in ISC software, is self- > described as a 'Reference Implementation.' There has been a great > deal of confusion about this term. Some people seem to think that > this term applies to any software that once passed a piece of > reference material on its way to market (but may do quite a lot of > things that aren't described in any reference, or may choose to > ignore the reference it saw entirely). Other folks get confused by > the word 'reference' and understand that to mean that there is some > special status applied to the software - that the software itself is > the reference by which all other software is measured. Something > along the lines of being "The DHCP Protocol's Reference Clock," it is > supposed. > The truth is actually quite a lot simpler. Reference implementations > are software packages which were written to behave precisely as > appears in reference material. They are written "to match > reference." > If the software has a behaviour that manifests itself externally > (whether it be something as simple as the 'wire format' or something > higher level, such as a complicated behaviour that arises from > multiple message exchanges), that behaviour must be found in a > reference document. > Anything else is a bug, the only question is whether the bug is in > reference or software (failing to implement the reference). > This means: > o To produce new externally-visible behaviour, one must first > provide a reference. > o Before changing externally visible behaviour to work around simple > incompatibilities in any other implementation, one must first > provide a reference. > That is the lofty goal, at any rate. It's well understood that, > especially because the ISC DHCP Software package has not always been > held to this standard (but not entirely due to it), there are many > non-referenced behaviours within ISC DHCP. > The primary goal of reference implementation is to prove the > reference material. If the reference material is good, then you > should be able to sit down and write a program that implements the > reference, to the word, and come to an implementation that is > distinguishable from others in the details, but not in the facts of > operating the protocol. This means that there is no need for > 'special knowledge' to work around arcane problems that were left > undocumented. No secret handshakes need to be learned to be imparted > with the necessary "real documentation". In this definition, there can be more than one reference implementation, and not a singleton "the reference implementation". As this phrase is regularly used to refer to protocol implementations, is there a normative definition published somewhere in the RFCs about what constitutes a reference implementation? Mukund
Attachment:
signature.asc
Description: PGP signature