Программный модуль для работы с контекстно-свободными грамматиками
Аннотация
В статье представлена разработка учебного программного модуля для поддержки начального этапа обучения формальным грамматикам. Разработанный модуль позволяет студенту или преподавателю описывать заданный язык посредством контекстно-свободной грамматики. В процессе выполнения учебного задания по написанию грамматики модуль в интерактивном режиме обеспечивает реакцию на отличия построенной грамматики от эталонной. Основная техническая проблема, которую решали авторы, связана с тем, что не существует алгоритма определения эквивалентности двух контекстно-свободных грамматик. Поэтому модуль должен в реальном времени генерировать достаточно большое число слов языка различной длины, чтобы с большой вероятностью обнаружить отличия предложенной грамматики от эталонной. В работе было проанализировано несколько алгоритмов генерации слов, после чего выбран алгоритм, наиболее соответствующий условиям использования модуля. Разработанный модуль можно использовать для проведения олимпиад по дискретной математике и информатике у школьников и студентов, а также для поддержки самостоятельной работы студентов над темой «Формальные языки и грамматики».
Литература
N. Chomsky, “Syntactic Structures,” New in linguistics, vol. 2, pp. 412–527, 1962 (in Russian).
B. K. Martynenko, Languages and translations, St. Petersburg, Russia: SPbGU Publ., 2013 (in Russian).
Jetbrains MPS, “Meta Programming System,” in www.jetbrains.com, 2024. [Online]. Available: https://www.jetbrains.com/mps/
Xtext Eclipse, “Language Engineering For Everyone!,” in eclipse.dev, 2024. [Online]. Available: https://eclipse.dev/Xtext/
ANTLR, “Quick Start,” in www.antlr.org, 2024. [Online]. Available: https://www.antlr.org
“Extended Backus–Naur Form,” in ru.wikipedia.org, 2024 (in Russian). [Online]. Available: https://ru.wikipedia.org/w/index.php?title=Расширенная_форма_Бэкуса_—_Наура&stable=1
N. Wirth, Algorithms and Data Structures, Мoscow: DMK press, 2010 (in Russian).
ITMO University, “Cocke-Younger-Kasami algorithm,” in neerc.ifmo.ru, 2022 (in Russian). [Online]. Available: https://neerc.ifmo.ru/wiki/index.php?title=Алгоритм_Кока-ЯнгераКасами_разбора_грамматики_в_НФХ
ITMO University, “Chomsky normal form,” in neerc.ifmo.ru, 2022 (in Russian). [Online]. Available: https://neerc.ifmo.ru/wiki/index.php?title=Нормальная_форма_Хомского
A. Sorokin, Earley algorithm, in homepage.mi-ras.ru, 2013 (in Russian). [Online]. Available: https://homepage.mi-ras.ru/~sk/lehre/fivt2013/Earley.pdf
Материал публикуется под лицензией: