Архив статей журнала

РАЗРАБОТКА ЛЕГКОВЕСНЫХ ПАРСЕРОВ С РАЗНОЙ ДЕТАЛИЗАЦИЕЙ ЯЗЫКА GO (2024)
Выпуск: № 6, Том 27 (2024)
Авторы: ДРОЗДОВ Дмитрий Сергеевич, МИХАЛКОВИЧ Станислав Станиславович

Рассмотрен подход к созданию семейства легковесных грамматик для языка Go со специальным символом Any, обозначающим пропускаемую часть программы [1]. Дано формальное определение более детализированной грамма-тики, приведены примеры увеличения детализации правил грамматики. Проведен анализ эффективности семейства построенных легковесных парсеров по па-мяти и времени работы на семи промышленных репозиториях. Показано, что увеличение детализации грамматики не ведет к существенному росту потребления ресурсов парсером и незначительно колеблется в зависимости от типа репозитория и стиля написания на Go. Кроме того, указаны преимущества использования легковесных грамматик с символом Any по сравнению с полными грамматиками. Представлен пример использования легковесной грамматики для определения сложности кода. Полученные результаты могут быть также применены для оценки доли парсера в общем потреблении ресурсов, например, в задаче при-вязки к коду и разметки проекта.

Сохранить в закладках