В процессе разработки программного обеспечения эталонная реализация (или, реже, пример реализации или модельная реализация ) — это программа, которая реализует все требования из соответствующей спецификации. Эталонная реализация часто сопровождает технический стандарт и демонстрирует то, что следует считать «правильным» поведением любой другой его реализации.
Референтные реализации алгоритмов, например криптографических алгоритмов , часто являются результатом или входом процессов стандартизации . В этой функции они часто выделяются в общественное достояние с их исходным кодом как программное обеспечение, являющееся общественным достоянием . Примерами являются первый httpd ЦЕРНа , [1] шифр Serpent , варианты base64 , [2] и SHA-3 . [3] Проект Openwall поддерживает список нескольких алгоритмов с их исходным кодом, являющимся общественным достоянием. [4]
Референтная реализация может быть или не быть производственного качества. Например, референтная реализация Fraunhofer стандарта MP3 обычно не идет ни в какое сравнение с другими распространенными реализациями, такими как LAME , в тестах на прослушивание, которые определяют качество звука. [5] Напротив, CPython , референтная реализация языка программирования Python , [6] также является реализацией, наиболее широко используемой в производстве.
Тестирование взаимосвязи между реализацией и спецификацией еще больше повышает эффективность межпроцессного взаимодействия в производстве :
Референтная реализация — это, в общем, реализация спецификации, которая будет использоваться в качестве окончательной интерпретации для этой спецификации. Во время разработки набора тестов соответствия ... необходима по крайней мере одна относительно доверенная реализация каждого интерфейса для (1) обнаружения ошибок или двусмысленностей в спецификации и (2) проверки правильности функционирования набора тестов. [7]
Характеристики эталонной реализации:
- Разработано одновременно со спецификацией и тестовым набором;
- Проверяет, что спецификация реализуема;
- Позволяет тестировать набор тестов;
- Служит золотым стандартом, с которым можно сравнивать другие реализации;
- Помогает прояснить цель спецификации в ситуациях, когда тесты на соответствие недостаточны [8]
Функция губки Keccak, разработанная: Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; Ван Аш, Жиль. Для получения дополнительной информации, отзывов или вопросов посетите наш веб-сайт: keccak.noekeon.org/ / Реализация проектировщиками, именуемыми здесь «разработчик». / В той мере, в какой это возможно в соответствии с законом, исполнитель отказался от всех авторских и смежных прав на исходный код в этом файле. creativecommons.org/publicdomain/zero/1.0/
В течение ряда лет различие между Python-the-language и CPython (эталонная реализация) растет. Большая часть этих изменений связана с появлением Jython, IronPython и PyPy как жизнеспособных альтернативных реализаций Python.