Download presentation
Presentation is loading. Please wait.
1
Инструмент реинжиниринга спецификаций трансляций Константин Андреевич Улитин Научный руководитель: Я.А. Кириленко Рецензент: Н.М. Тимофеев Санкт-Петербургский государственный университет Математико-Механический факультет Кафедра системного программирования 2011
2
Предметная область Все ПО, использующее формальные грамматики Предметно-ориентированные языки Анализаторы кода – Разметка – Статический анализ – Генерация документации Преобразователи кода – Препроцессоры – Форматирование кода – Рефакторинг – Трансляция в другой язык
3
Реинжиниринг грамматик Зачем? Не удовлетворены выбранным генератором анализаторов – Другой класс алгоритма разбора – Неудобный синтаксис – Проблемы с восстановлением после ошибок – Скорость работы Как? Перейти на другой инструмент
4
Постановка задачи Инструмент, позволяющий производить реинжиниринг грамматик Трансляция в другой формат – Для ухода от проблем выбранного инструмента – Для переиспользования разработанных грамматик Более удобная разработка, отладка
5
YaccConstructor Common ExpandMeta ExpandEbnf ExpandBrackets ReplaceLiterals AddEOF BuildAST Внутреннее представление YardFrontend FsYaccFrontend IronyFrontend AntlrFrontend RACC FsYaccPrinter YardPrinter FParsecPrinter
6
YaccConstructor Common ExpandMeta ExpandEbnf ExpandBrackets ReplaceLiterals AddEOF BuildAST LeaveLast AddAlter Внутреннее представление YardFrontend FsYaccFrontend IronyFrontend AntlrFrontend RACC FsYaccPrinter YardPrinter FParsecPrinter LINKER
7
Применение В пилотном проекте SqlMigration Разработка на языке Yard с трансляцией в FsYacc Не нужно писать атрибуты Модульность грамматики LINKER proc.yrd common.yrd sql_stmt.yrd YardFrontend FsYaccPrinter ExpandMeta BuildAST ExpandEbnf ExpandBrackets ReplaceLiterals AddEOF parser.fsy
8
Результаты Реализован инструмент, позволяющий – Транслировать из ANTLR, FsYacc в Yard, FsYacc – Генерировать атрибуты, строящие AST – Задавать грамматику в нескольких файлах Проведена апробация в проекте SqlMigration Результаты представлены на конференциях «Технологии MS в теории и практике программирования» (диплом 1 степени) и «СПИСОК» 2011г.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.