參考實作
外觀
[[怛達點畫|
%7B%7Bzy%7C怛%7CDá%7Cㄉㄚˊ%7D%7D達點畫
[[怛達點畫|
這是一個範例模板。有關模板幫助,請參閱Help:模板。 |
]]
在軟體開發過程中,參考實作(英語: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]