Алгоритм сопоставления подстановочных знаков Краусса


В информатике алгоритм сопоставления подстановочных знаков Краусса представляет собой алгоритм сопоставления с образцом . Основанный на широко используемом синтаксисе подстановочных знаков , например, в интерфейсе командной строки Microsoft Windows , алгоритм обеспечивает нерекурсивный механизм сопоставления шаблонов в программных приложениях, основанный на более простом синтаксисе, чем обычно предлагаемый регулярными выражениями .

Алгоритм основан на истории разработки, проверки правильности и производительности, а также на отзывах программистов, которые начались с безуспешного поиска надежного нерекурсивного алгоритма сопоставления подстановочных знаков. Первоначальный алгоритм, реализованный в одном цикле while, быстро вызвал комментарии разработчиков программного обеспечения, что привело к улучшениям. [1] Текущие комментарии и предложения [2] [3] завершились пересмотренным алгоритмом, по-прежнему реализованным в одном цикле while, но усовершенствованным на основе набора тестовых случаев и профилировщика производительности . [4]Опыт настройки одного цикла while с помощью профилировщика подтолкнул к разработке стратегии с двумя циклами, которая обеспечила дополнительный прирост производительности, особенно в ситуациях, когда входные строки пусты или входные данные не содержат подстановочных знаков. [5] Двухконтурный алгоритм доступен для использования сообществом разработчиков программного обеспечения с открытым исходным кодом в соответствии с условиями лицензии Apache версии 2.0 и сопровождается кодом тестового примера.

Алгоритм, доступный под лицензией Apache, реализован как в C++ на основе указателей , так и в переносимом C++ (реализованном без указателей). Код тестового примера, также доступный под лицензией Apache, можно применять к любому алгоритму, обеспечивающему описанные ниже операции сопоставления с образцом. Закодированная реализация не может обрабатывать многобайтовые наборы символов и создает проблемы, когда искомый текст может содержать несколько несовместимых наборов символов.

Оригинальный алгоритм был перенесен на язык программирования DataFlex Ларри Хейгесом [6] для использования с библиотекой кодов Data Access Worldwide . Он был размещен на GitHub в модифицированном виде как часть программы для чтения файлов журнала. [7] Алгоритм 2014 года является частью Unreal Model Viewer, встроенного в игровой движок Epic Games Unreal Engine . [8] [9]