Тип работы:
Предмет:
Язык работы:


Синтаксический анализ данных, представленных в виде контекстно-свободной грамматики

Работа №125360

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы24
Год сдачи2017
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
20
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 6
2. Обзор 7
2.1. Рекурсивные автоматы и КС-грамматики 7
2.2. GLL-алгоритм и его модификации 8
2.2.1. Оригинальный GLL-алгоритм 8
2.2.2. Поддержка грамматик в EBNF 9
2.2.3. Синтаксический анализ графов 10
2.3. Проект YaccConstructor 11
3. Разрешимость задачи синтаксического анализа контекстно-свободного представления 12
4. Алгоритм синтаксического анализа контекстно-свободного представления 14
5. Экспериментальное исследование 18
Заключение 20
Список литературы 21
Приложение 23

Контекстно-свободные грамматики, наряду с регулярными выраже­ниями, активно используются для решения задач, связанных с разра­боткой формальных языков и синтаксических анализаторов. Одним из основных достоинств контекстно-свободных грамматик является воз­можность задания широкого класса языков при сохранении относитель­ной компактности представления. Благодаря данному свойству, грам­матики также представляют интерес в такой области информатики, как кодирование и сжатие данных. В частности, существует ряд ал­горитмов, позволяющих производить сжатие текстовой информации, используя в качестве конечного [7] или промежуточного [2] представ­ления контекстно-свободную грамматику (grammar-based compression).
Стандартной процедурой при работе с текстовыми данными явля­ется поиск в них определенных шаблонов, которые могут быть зада­ны строкой или регулярным выражением. В настоящее время боль­шие объемы информации, как правило, хранятся и передаются по сети в сжатом виде, поэтому актуальной задачей становится поиск шабло­нов непосредственно в компактном контекстно-свободном представле­нии текста. Такой подход позволяет избежать дополнительных затрат памяти на восстановление исходной формы данных и в некоторых слу­чаях увеличивает скорость выполнения запроса. Шаблон здесь может быть, как и при поиске в обычном тексте, строкой (compressed pattern matching), сжатой строкой (fully compressed pattern matching) или ре­гулярным выражением.
Известны ситуации, в которых для задания шаблона необходимо ис­пользовать более выразительные средства. Примером может служить одна из задач биоинформатики — поиск определенных подпоследова­тельностей в геноме организма. Так, для классификации и исследова­ния образцов, полученных в результате процедуры секвенирования, в них могут искать гены, описывающие специфические рРНК. Структура таких генов, как правило, задается при помощи контекстно-свободной грамматики [8]. Для уменьшения объемов памяти, необходимых для хранения большого количества геномов, используются различные ал­горитмы сжатия, в том числе основанные на получении контекстно­свободной структуры исходных последовательностей [3].
Задача поиска КС-шаблонов при использовании КС-представления данных формулируется следующим образом: необходимо найти все стро­ки, принадлежащие пересечению двух языков, один из которых зада­ется грамматикой шаблона, а второй представляет собой язык всех подстрок исходного множества строк, описываемого грамматикой, по­лученной в результате сжатия данных. Назовем такой поиск синтак­сическим анализом данных, представленных в виде КС-грамматики. В общем случае задача неразрешима, так как сводится к задаче о проверке пересечения двух языков, порождаемых произвольными КС- грамматиками, на пустоту [5]. Для постановки экспериментов в области биоинформатики необходимо точнее исследовать возможность проведе­ния синтаксического анализа КС-представления и разработать прото­тип алгоритма, позволяющего решить данную задачу.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе данной работы получены следующие результаты.
• Определены ограничения, при которых синтаксический анализ контекстно-свободного представления является разрешимой зада­чей. Было показано, что грамматика, являющаяся представлени­ем данных, должна порождать конечный язык.
• Разработан алгоритм синтаксического анализа КС-представления, учитывающий поставленные ограничения. Полученный алгоритм является модификацией алгоритма синтаксического анализа гра­фов на основе GLL.
• Выполнена реализация алгоритма на языке программирования F# в рамках исследовательского проекта YaccConstructor.
• Проведено экспериментальное исследование: выполнено тестиро­вание производительности на синтетических данных.
В дальнейшем планируется провести апробацию алгоритма на ре­альных данных — сжатом представлении ДНК организмов — и дока­зать теоретическую оценку сложности алгоритма.
Исходный код проекта YaccConstructor представлен на сайте https://github.com/YaccConstructor/YaccConstructor.


[1] Afroozeh Ali, Izmaylova Anastasia. Faster, Practical GLL Parsing // Compiler Construction: 24th International Conference, CC 2015, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, London, UK, April 11-18, 2015, Proceedings / Ed. by Bjorn Franke. — Berlin, Heidelberg : Springer Berlin Heidelberg, 2015. — P. 89-108. — ISBN: 978-3-662-46663-6. — URL: http://dx. doi.org/10.1007/978-3-662-46663-6_5.
[2] Arimura Mitsuharu. A grammar-based compression using a variation of Chomsky normal form of context free grammar // 2016 International Symposium on Information Theory and Its Applications (ISITA).—2016.
[3] Galle Matthias. Searching for Compact Hierarchical Structures in DNA by means of the Smallest Grammar Problem : Theses / Matthias Galle ; Universite Rennes 1. — 2011.—Feb. — URL: https: //tel.archives-ouvertes.fr/tel-00595494.
[4] Gorokhov Artem, Grigorev Semyon. Extended Context-Free Grammars Parsing with Generalized LL. — 2017.
[5] Harrison M. A. Introduction to Formal Language Theory. — 1st edition. — Boston, MA, USA : Addison-Wesley Longman Publishing Co., Inc., 1978. —ISBN: 0201029553.
[6] Nederhof Mark-Jan, Satta Giorgio. The Language Intersection Problem for Non-recursive Context-free Grammars // Inf. Comput. — 2004. — Aug.—Vol. 192, no. 2.—P. 172-184. — URL: http://dx.doi.org/ 10.1016/j.ic.2004.03.004.
[7] Nevill-Manning Craig G., Witten Ian H. Identifying Hierarchical Structure in Sequences: A Linear-time Algorithm //J. Artif. Int. Res.-1997.-Sep.-Vol. 7, no. 1.-P. 67-82.-URL: http://dl. acm.org/citation.cfm?id=1622776.1622780.
[8] Quantifying variances in comparative RNA secondary structure prediction / James WJ Anderson, Adam Novak, Zsuzsanna Sukosd et al. // BMC Bioinformatics. — 2013.—Vol. 14, no. 1. — P. 149.— URL: http://dx.doi.org/10.1186/1471-2105-14-149.
[9] Scott Elizabeth, Johnstone Adrian. GLL parsing // Electronic Notes in Theoretical Computer Science. — 2009. — Vol. 253, no. 7.
[10] Sequitur [Электронный ресурс]. — URL: https://github.com/ craignm/sequitur (online; accessed: 25.05.2017).
[11] Tellier Isabelle. Learning recursive automata from positive examples // Revue des Sciences et Technologies de l’Information-Serie RIA: Revue d’Intelligence Artificielle. — 2006.—Vol. 20, no. 6. — P. 775-804.
[12] YARD [Электронный ресурс].—URL: http://yaccconstructor. github.io/YaccConstructor/yard.html (online; accessed: 25.05.2017).
[13] Григорьев C. В. Синтаксический анализ динамически формируе­мых программ : Дисс... кандидата наук / C. В. Григорьев ; Санкт- Петербургский государственный университет. — 2015.


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ