參考實作
作为范例的规范的实施
此條目翻譯自英語維基百科,需要相關領域的編者協助校對翻譯。 |
在軟體開發過程中,參考實作(英語:Reference implementation,中國大陸作參考實現)是實作對應規範中所有要求的一種電腦程式,也偶爾被稱作參照實裝、範例實作(sample implementation)或模型實作(model implementation)。參考實作通常伴隨技術標準,示範了其他任何實作應做到的被視為「正確」的行為。
特徵和例子
演算法的參考實作(例如密碼演算法)通常來自標準化流程。在密碼學領域,通常會將原始碼作為公有領域軟體發布。例如CERN httpd[1]、Serpent密碼、base64變種[2]、以及SHA-3[3]。Openwall專案維護了一個包含多種演算法的在公有領域下發布的參考實作原始碼名單。[4]
參考實作可能達到或者未達到生產級品質。例如,弗勞恩霍夫協會對MP3標準的參考實作通常無法與其他常見的實作(如LAME)在音質測試中相媲美[來源請求]。與之相反,Python程式語言的參考實作CPython則在生產中使用最為廣泛[5]。
測試
對參考實作進行軟體測試可以提高規範的生產效率:
參考實作通常作為最終解釋一個規範的實作(此定義有些大膽,但一般如此)。在一致性測試套件的開發中,每個介面需要至少一個相對受信任的實作,以做到:(1) 發現規範中的錯誤和歧義,以及(2) 驗證測試套件的功能正確。[6]
參考實作的特徵有:
參考文獻
- ^ The birth of the web Licensing the web on cern.ch (2014)
- ^ libb64 (頁面存檔備份,存於網際網路檔案館) 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[永久失效連結] 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/"存档副本. [2021-01-09]. 原始內容存檔於2013-06-26.
- ^ Source code snippets and frameworks placed in the public domain (頁面存檔備份,存於網際網路檔案館) on openwall.info
- ^ Snow, Eric. PEP 421 -- Adding sys.implementation. Python.org. Python Software Foundation. 2012-01-26 [2017-01-06]. (原始內容存檔於2017-01-07).
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. [https://web.archive.org/web/20060928231404/http://xw2k.sdct.itl.nist.gov/smartcard/document/ref-imp51.pdf Requirements for GSC-IS Reference Implementations]
- ^ Curran, Patrick (2003). Conformance Testing: An Industry Perspective. Sun Microsystems. [1]