Тема: Поддержка расширенных контекстно-свободных грамматик в алгоритме синтаксического анализа Generalised LL
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. Постановка задачи 6
2. Обзор 7
2.1. Расширенные контекстно-свободные грамматики 7
2.2. Стек, структурированный в виде графа 9
2.3. Сжатое представление леса разбора 9
2.4. Алгоритм Generalised LL 11
2.5. Анализ метагеномных сборок 12
2.6. Проект YaccConstructor 14
3. Представление ECFG 15
4. Лес разбора для ECFG 17
5. Алгоритм построения леса разбора для ECFG 20
6. Синтаксический анализ регулярных множеств 23
7. Реализация 25
8. Эксперименты 26
Заключение 30
Список литературы 31
Приложение. Псевдокод Generalized LL алгоритма 35
📖 Введение
Существуют различные инструменты, такие как ANTLR [1], Bison [5], позволяющие для грамматики языка создать синтаксический анализатор для текстов, созданных на этом языке. Проблема заключается в том, что эти инструменты сначала преобразуют грамматику к форме Бэкуса-Наура и только затем строят синтаксический анализатор.
Существуют работы, описывающие синтаксический анализ с помощью расширенных контекстно-свободных грамматик (Extended Context-Free Grammar, ECFG) [6], [14], но практические средства, основанные на данных работах, не были созданы. Кроме того, подходы, описанные в данных исследованиях, поддерживают лишь подклассы контекстно-свободных языков.
Алгоритмы обобщённого синтаксического анализа, например Generalised LL [22], способны использовать контекстно-свободные грамматики, описывающие произвольные контекстно-свободные языки. Но они так же не допускают использования ECFG без предварительного преобразования к форме Бэкуса-Наура.
Одно из возможных применений обобщённого синтаксического анализа — поиск генов и иных последовательностей в биологическом материале. Из материала извлекаются геномы содержащихся в нём организмов — последовательности над алфавитом {A; C; G T}. Но для того чтобы снизить расходы на хранение этих последовательностей, по ним строится конечный автомат. В геноме существуют различные последовательности, позволяющие классифицировать организм, которые имеют некоторые общие свойства, которые можно описать контекстно-свободной грамматикой [18], поэтому для их поиска можно применять синтаксический анализ. Синтаксический анализ конечных автоматов называют синтаксическим анализом регулярных множеств. Одной из целей данной работы является применение полученного GLL алгоритма в синтаксическом анализе регулярных множеств, в частности — метагеномных сборок.
На кафедре Системного Программирования СПбГУ, в рамках исследовательского проекта YaccConstructor [32], разрабатывается подход для поиска структур, заданных с помощью контекстно-свободной грамматики в метагеномных сборках, основанный на алгоритме Generalised LL. Предполагается, что синтаксический анализ для расширенных контекстно-свободных грамматик без преобразований даст значительный прирост производительности существующего подхода.
✅ Заключение
• В качестве подходящего представления ECFG выбраны рекурсивные конечные автоматы.
• Спроектирована структура данных для представления леса разбора для ECFG на основе сжатого леса разбора (SPPF).
• Разработан алгоритм на основе Generalised LL, строящий лес разбора для ECFG.
• Алгоритм реализован в рамках проекта YaccConstructor. Исходный код доступен в репозитории YaccConstructor [31], автор работал под учётной записью “gorohovart”.
• Проведено экспериментальное сравнение реализованного алгоритма с существующим в проекте YaccConstructor, показавшее двухкратный прирост на использованных данных.
• Результаты работы успешно представлены на международной конференции “Tools and Methods of Program Analysis” (Москва, 2017г.) в докладе “Extended Context-Free Grammars Parsing with Generalized LL”.





