Инструмент реинжиниринга спецификаций трансляций презентация

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

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

Санкт-Петербургский

государственный университет
Математико-Механический факультет
Кафедра системного программирования
2011

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

кода
Рефакторинг
Трансляция в другой язык

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

восстановлением после ошибок
Скорость работы
Как?
Перейти на другой инструмент


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

проблем выбранного инструмента
Для переиспользования разработанных грамматик
Более удобная разработка, отладка

Слайд 5YaccConstructor
Common
ExpandMeta
ExpandEbnf
ExpandBrackets
ReplaceLiterals
AddEOF
BuildAST


Внутреннее представление
YardFrontend
FsYaccFrontend
IronyFrontend
AntlrFrontend
RACC
FsYaccPrinter
YardPrinter
FParsecPrinter


Слайд 6YaccConstructor
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

YardFrontend

YardFrontend

FsYaccPrinter

ExpandMeta
BuildAST
ExpandEbnf
ExpandBrackets
ReplaceLiterals
AddEOF

parser.fsy


Слайд 8Результаты
Реализован инструмент, позволяющий
Транслировать из ANTLR, FsYacc в Yard, FsYacc
Генерировать атрибуты, строящие

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


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика