stringtranslate.com

Референтная реализация

В процессе разработки программного обеспечения эталонная реализация (или, реже, пример реализации или модельная реализация ) — это программа, которая реализует все требования из соответствующей спецификации. Эталонная реализация часто сопровождает технический стандарт и демонстрирует то, что следует считать «правильным» поведением любой другой его реализации.

Характеристики и примеры

Референтные реализации алгоритмов, например криптографических алгоритмов , часто являются результатом или входом процессов стандартизации . В этой функции они часто выделяются в общественное достояние с их исходным кодом как программное обеспечение, являющееся общественным достоянием . Примерами являются первый httpd ЦЕРНа , [1] шифр Serpent , варианты base64 , [2] и SHA-3 . [3] Проект Openwall поддерживает список нескольких алгоритмов с их исходным кодом, являющимся общественным достоянием. [4]

Референтная реализация может быть или не быть производственного качества. Например, референтная реализация Fraunhofer стандарта MP3 обычно не идет ни в какое сравнение с другими распространенными реализациями, такими как LAME , в тестах на прослушивание, которые определяют качество звука. [5] Напротив, CPython , референтная реализация языка программирования Python , [6] также является реализацией, наиболее широко используемой в производстве.

Тестирование

Тестирование взаимосвязи между реализацией и спецификацией еще больше повышает эффективность межпроцессного взаимодействия в производстве :

Референтная реализация — это, в общем, реализация спецификации, которая будет использоваться в качестве окончательной интерпретации для этой спецификации. Во время разработки набора тестов соответствия ... необходима по крайней мере одна относительно доверенная реализация каждого интерфейса для (1) обнаружения ошибок или двусмысленностей в спецификации и (2) проверки правильности функционирования набора тестов. [7]

Характеристики эталонной реализации:

  1. Разработано одновременно со спецификацией и тестовым набором;
  2. Проверяет, что спецификация реализуема;
  3. Позволяет тестировать набор тестов;
  4. Служит золотым стандартом, с которым можно сравнивать другие реализации;
  5. Помогает прояснить цель спецификации в ситуациях, когда тесты на соответствие недостаточны [8]

Ссылки

  1. ^ Смит, Тим; Флюкигер, Франсуа. «Лицензирование Интернета: для всех». ЦЕРН . Архивировано из оригинала 10.12.2021 . Получено 17.08.2014 .
  2. ^ Devolve, Крис (2005-11-20). "libb64: Base64 Encoding/Decoding Routines". SourceForge . Архивировано из оригинала 2010-07-30 . Получено 2016-02-06 .
  3. ^ Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; Ван Аш, Жиль (27 февраля 2013 г.). «KeccakReferenceAndOptimized-3.2.zip» (ZIP) . keccak.noekeon.org . /KeccakReferenceAndOptimized/Sources/mainReference.c. Архивировано из оригинала (ZIP) 30 сентября 2013 г. Проверено 6 февраля 2016 г. Функция губки Keccak, разработанная: Бертони, Гвидо; Дэмен, Джоан; Питерс, Майкл; Ван Аш, Жиль. Для получения дополнительной информации, отзывов или вопросов посетите наш веб-сайт: keccak.noekeon.org/ / Реализация проектировщиками, именуемыми здесь «разработчик». / В той мере, в какой это возможно в соответствии с законом, исполнитель отказался от всех авторских и смежных прав на исходный код в этом файле. creativecommons.org/publicdomain/zero/1.0/
  4. ^ solar (2009-11-05). "Фрагменты исходного кода и фреймворки, размещенные в общественном достоянии". Openwall Community Wiki . Архивировано из оригинала 2019-01-26 . Получено 2017-11-16 .
  5. ^ Daulton, Steve (2019-06-11). "Информация о медиафайлах не соответствует параметрам формата, выбранным для экспортированных MP3-файлов - #6 от steve - Windows". Форум Audacity . Архивировано из оригинала 2023-12-02 . Получено 2024-09-05 .
  6. ^ Сноу, Эрик (2012-04-26). "PEP 421 – Добавление sys.implementation". peps.python.org . Python Software Foundation (владеющий "python.org"). Мотивация. Архивировано из оригинала 2022-04-11 . Получено 2017-01-06 . В течение ряда лет различие между Python-the-language и CPython (эталонная реализация) растет. Большая часть этих изменений связана с появлением Jython, IronPython и PyPy как жизнеспособных альтернативных реализаций Python.
  7. ^ Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003-03-26). "Требования к эталонным реализациям GSC-IS" (PDF) . Национальный институт стандартов и технологий, Лаборатория информационных технологий . Архивировано из оригинала (PDF) 2006-09-28 . Получено 2006-07-22 .
  8. ^ Curran, Patrick (2003-12-10). "Тестирование соответствия: перспектива отрасли" (PDF) . Национальный институт стандартов и технологий . Sun Microsystems . Архивировано из оригинала (PDF) 2003-12-19 . Получено 2006-07-22 .