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

Презентация:



Advertisements
Похожие презентации
Разработка архитектуры для генератора синтаксических анализаторов Выполнил: Улитин Константин Научный руководитель: Я.А. Кириленко Курсовая.
Advertisements

Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Научный руководитель: Я.А. Кириленко.
Генератор синтаксических анализаторов для решения задач автоматизированного реинжиниринга программ Дипломная работа студента 544 группы Чемоданова Ильи.
Санкт-Петербургский Государственный Университет Математико-Механический факультет Кафедра системного программирования Межъязыковое взаимодействие OCaml.
Санкт - Петербургский Государственный Университет Математико - механический факультет Кафедра системного программирования Система проверки данных на полноту.
Генерация средств импорта данных в рамках проектов ИС, реализованных в технологии REAL-IT Выполнил Комиссаров Антон Научный руководитель: Иванов А.Н. Рецензент:
ПОТОКО-ЧУВСТВИТЕЛЬНЫЙ АНАЛИЗ УКАЗАТЕЛЕЙ ЯЗЫКА С, ОСНОВАННЫЙ НА ДИАГРАММАХ ДВОИЧНЫХ РЕШЕНИЙ Санкт-Петербургский Государственный Университет Математико-Механический.
Поддержка разработки Parallels Business Automation в среде Eclispe Научный руководитель: Сергушенков Ю. А. Рецензент: доцент кафедры системного программирования,
Алгоритм исправления ошибок при анализе в парсерах типа перенос-свертка, основанный на предположении об избыточности языка Дипломная работа студента 545.
Санкт-Петербургский Государственный Университет Математико-механический факультет Кафедра системного программирования Курсовая работа студентки 361 группы.
Курсовая работа студента 345 группы Чуновкина Фёдора Дмитриевича Научный руководитель: Бондарев А.В. Санкт-Петербургский Государственный Университет Математико-механический.
Генерация скрипта создания базы данных с учетом зависимостей Автор : Максим Масунов, 545 группа Санкт - Петербургский государственный университет Математико.
Разработка кроссплатформенного приложения для кластерного анализа данных на основе рандомизированных алгоритмов Дипломная работа студента 544 группы Морозкова.
Создание среды разработки документации семейств программных продуктов Яковлев Константин Сергеевич 542 группа Научный руководитель: К. Ю. Романовский Рецензент:
Апробация технологий Silverlight/LINQ/WCF для создания web-приложений, ориентированных на интенсивную обработку данных Дипломная работа студента 545 группы.
Использование автогенерации кода для тестирования драйверов ОС Windows Дипломная работа студента 545 группы Комольцева Дмитрия Владимировича Научный руководитель:
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Математико-механический факультет Кафедра системного программирования Автоматизация выбора оптимальной.
Разработка отладчика для программ на языке haXe и целевой платформы Adobe Flash 9 Выполнил студент 544 группыКрасько Н.Л. Научный руководительПлискин М.М.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
Model/View-архитектура CASE-пакета REAL-MV Тимофей Брыксин, гр. 545 Научный руководитель: А.Н.Терехов Рецензент: Д.В.Кознов.
Транксрипт:

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

Предметная область Все ПО, использующее формальные грамматики Предметно-ориентированные языки Анализаторы кода – Разметка – Статический анализ – Генерация документации Преобразователи кода – Препроцессоры – Форматирование кода – Рефакторинг – Трансляция в другой язык

Реинжиниринг грамматик Зачем? Не удовлетворены выбранным генератором анализаторов – Другой класс алгоритма разбора – Неудобный синтаксис – Проблемы с восстановлением после ошибок – Скорость работы Как? Перейти на другой инструмент

Постановка задачи Инструмент, позволяющий производить реинжиниринг грамматик Трансляция в другой формат – Для ухода от проблем выбранного инструмента – Для переиспользования разработанных грамматик Более удобная разработка, отладка

YaccConstructor Common ExpandMeta ExpandEbnf ExpandBrackets ReplaceLiterals AddEOF BuildAST Внутреннее представление YardFrontend FsYaccFrontend IronyFrontend AntlrFrontend RACC FsYaccPrinter YardPrinter FParsecPrinter

YaccConstructor Common ExpandMeta ExpandEbnf ExpandBrackets ReplaceLiterals AddEOF BuildAST LeaveLast AddAlter Внутреннее представление YardFrontend FsYaccFrontend IronyFrontend AntlrFrontend RACC FsYaccPrinter YardPrinter FParsecPrinter LINKER

Применение В пилотном проекте SqlMigration Разработка на языке Yard с трансляцией в FsYacc Не нужно писать атрибуты Модульность грамматики LINKER proc.yrd common.yrd sql_stmt.yrd YardFrontend FsYaccPrinter ExpandMeta BuildAST ExpandEbnf ExpandBrackets ReplaceLiterals AddEOF parser.fsy

Результаты Реализован инструмент, позволяющий – Транслировать из ANTLR, FsYacc в Yard, FsYacc – Генерировать атрибуты, строящие AST – Задавать грамматику в нескольких файлах Проведена апробация в проекте SqlMigration Результаты представлены на конференциях «Технологии MS в теории и практике программирования» (диплом 1 степени) и «СПИСОК» 2011г.