Presentation is loading. Please wait.

Presentation is loading. Please wait.

Инструмент реинжиниринга спецификаций трансляций Константин Андреевич Улитин Научный руководитель: Я.А. Кириленко Рецензент: Н.М. Тимофеев Санкт-Петербургский.

Similar presentations


Presentation on theme: "Инструмент реинжиниринга спецификаций трансляций Константин Андреевич Улитин Научный руководитель: Я.А. Кириленко Рецензент: Н.М. Тимофеев Санкт-Петербургский."— Presentation transcript:

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г.


Download ppt "Инструмент реинжиниринга спецификаций трансляций Константин Андреевич Улитин Научный руководитель: Я.А. Кириленко Рецензент: Н.М. Тимофеев Санкт-Петербургский."

Similar presentations


Ads by Google