|
Эта публикация цитируется в 4 научных статьях (всего в 4 статьях)
Tolerant parsing with a special kind of «Any» symbol: the algorithm and practical application
[Толерантный синтаксический анализ с использованием специального символа «Any»: алгоритм и практическое применение]
A. V. Goloveshkin, S. S. Mikhalkovich I.I. Vorovich Institute for Mathematics, Mechanics and Computer Science, Southern Federal University
Аннотация:
Толерантный синтаксический анализ позволяет найти области программы, представляющие интерес в контексте конкретной задачи, и извлечь информацию об их структуре. В то время как эти области должны быть подробно описаны в грамматике языка, другие части программы могут быть не описаны совсем или описаны менее детально, при этом генерируемый парсер должен признавать корректными все возможные вариации программы в нерелевантных областях, то есть, должен быть толерантным по отношению к ним. Островные грамматики — один из основных способов реализации толерантного парсинга. Термином «остров» обозначаются релевантные области кода, термином «вода» - нерелевантный код. В настоящей работе описывается модифицированный LL(1) алгоритм со встроенной обработкой специального символа «Any», позволяющего сопоставлять последовательности токенов, не описанные разработчиком грамматики в явном виде. Применение данного алгоритма к островным грамматикам ведёт к сокращению описания воды и упрощению описания островов. Наша реализация «Any» является более безопасной для использования и менее ограничительной по сравнению с ближайшими аналогами в генераторах Coco/R и LightParse. Также она более предсказуема и требует меньших накладных расходов в сравнении с концепцией «ограниченных морей», внедрённой в PetitParser. На базе алгоритма реализован генератор компиляторов со встроенным языком описания островных грамматик. Как показано в разделе экспериментов, сгенерированный по островной грамматике языка C# толерантный парсер может быть успешно применён для анализа крупных промышленных проектов.
Ключевые слова:
толерантный парсинг, устойчивый парсинг, легковесный парсинг, частичный парсинг, островная грамматика, генерация парсеров.
Образец цитирования:
A. V. Goloveshkin, S. S. Mikhalkovich, “Tolerant parsing with a special kind of «Any» symbol: the algorithm and practical application”, Труды ИСП РАН, 30:4 (2018), 7–28
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp344 https://www.mathnet.ru/rus/tisp/v30/i4/p7
|
Статистика просмотров: |
Страница аннотации: | 194 | PDF полного текста: | 124 | Список литературы: | 34 |
|