Материал конференции: "Научный сервис в сети Интернет: труды XXVI Всероссийской научной конференции (23-25 сентября 2024 г., онлайн)"
Авторы:Дроздов Д.С., Михалкович С.С.
Эффективность по памяти и времени легковесных парсеров с разной детализацией языка Go
Аннотация:
Рассматривается подход к созданию семейства легковесных грамматик для языка Go со специальным символом Any, обозначающим пропускаемую часть программы [1]. Дается формальное определение более детализированной грамматики, приводятся примеры увеличения детализации правил грамматики. Проводится анализ эффективности семейства построенных легковесных парсеров по памяти и времени работы на семи промышленных репозиториях. Показано, что увеличение детализации грамматики не ведет к существенному росту потребления ресурсов парсером и незначительно колеблется в зависимости от типа репозитория и стиля написания на Go. Кроме того, приведены преимущества использования легковесных грамматик с символом Any по сравнению с полными грамматиками. Представлен пример использования легковесной грамматики для определения сложности кода. Помимо этого, полученные результаты могут быть применены для оценки доли парсера в общем потреблении ресурсов, например в задаче привязки к коду и разметки проекта.
Ключевые слова:
легковесная грамматика, легковесный парсер, язык Go, грамматика с символом Any