zabika.ru 1 2 ... 8 9

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Математико-механический факультет

Кафедра системного программирования
ИНСТРУМЕНТ РЕИНЖИНИРИНГА СПЕЦИФИКАЦИЙ ТРАНСЛЯЦИЙ
Дипломная работа студента 545 группы
Константина Андреевича Улитина



Научный руководитель

………………
/ подпись /

с.н.с. НИИ ИТ СПбГУ Я. А. Кириленко

Рецензент

………………
/ подпись /

ведущий инженер-программист Н. М. Тимофеев

“Допустить к защите”
заведующий кафедрой,

………………

/ подпись /

д.ф.-м.н., проф. А. Н. Терехов.

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

SAINT PETERSBURG STATE UNIVERSITY

Mathematics and Mechanics Faculty

Software Engineering Department

TRANSLATION SPECIFICATION REENGINEERING TOOL


Graduate paper by

Konstantin Ulitin
545 group


Scientific advisor

………………

Senior Staff Scientist J. A. Kirilenko

Reviewer

………………

Lead Developer N. M. Timofeev

“Approved by”
Head of Department

………………

PhD, Professor A. N. Terekhov

Saint Petersburg

Оглавление


Введение 4

Выбор базовой технологии 6

DMS Software reengineering toolkit 7

TXL 7

StrategoXT 8

YaccConstructor 8

Результаты обзора 8

DMS 9

TXL 9

Stratego/XT 9

YaccConstructor 9

Возможности входного языка 9

БНФ без атрибутов, с предикатами 9

РБНФ, неоднозначные грамматики 9

Можно использовать любой фронтенд 9

Любой фронтенд для среды .NET 9

Представление AST 9

Неявно заданный тип, узлы соответствуют правилам 9

Неявно заданный тип 9

ATerm 9

Типизированный IL 9

Легкость преобразования 9

Декларативный и императивный способы 9

Функциональный стиль, можно менять тип узлов 9

Стратегии, состоящие из правил 9

Реализация преобразований на F# или C# 9

Лицензия 9

Коммерческое приложение с закрытым исх. кодом 9

Бесплатен, код открыт для старых версий 9

LGPL 9

GPL 9

Pretty printing 9

Встроенные конструкции 9

Автоматически 9

GPP 9

Библиотека StructuredFormat 9

Реализация 11

Типы узлов дерева разбора 11

Особенности внутреннего представления 13

Разрешение конфликтов 13

Правила с одинаковыми именами 13

Целевой язык 13

Типы возвращаемых значений синтаксических конструкций 13

Порядок вычисления атрибутов 14

Преобразования внутреннего представления 15

AddEOF 15

ReplaceLiterals 15

ExpandBrackets 16

BuildAST 16

ExpandEnbfStrict 16

Модульность спецификации трансляции 17

LeaveLast 18

MergeAlter 18

Парсеры спецификаций трансляции 18

AntlrFrontend 18

FsYaccFrontend 19

Генераторы спецификаций трансляции 19

FsYaccPrinter 19

SqlMigration 20

Claret 21

Заключение 22

Примеры использования преобразования BuildAST 23

Список использованных источников 24




следующая страница >>