Характеристика метода создания текстовых предметно-ориентированных языков. Расчет трудоемкости разработки компонента проверки синтаксиса. Проектирование архитектуры языкового инструментария и программная реализация компонента проверки синтаксиса.
Аннотация к работе
Пермский филиал федерального государственного автономного образовательного учреждения высшего образования Разработка инструментальных средств создания текстовых предметно-ориентированных языков: компонент проверки синтаксиса по направлению подготовки 09.03.04 Программная инженерия образовательная программа «Программная инженерия» Рецензент: к.ф.-м.н., доцент, доцент кафедры математического обеспечения вычислительных систем ПГНИУ, Н.Н.При помощи данного подхода на каждом этапе строятся модели с определенным уровнем абстракции [5], тем самым эффективно координируется работа всех участников разработки, ведь ключевым становится не написание программного кода, а построение моделей. Также данный подход позволяет повторно использовать уже описанные модели, что значительно снижает трудоемкость работы над проектом, ведь для модификации достаточно изменить модель без внесения правок в программный код [4]. Поскольку языки моделирования общего назначения, такие как UML, являются не всегда понятными как бизнес-аналитику, так и программисту, становится актуальным использование предметно-ориентированных языков (DSL), позволяющих формально описать модель системы, используя при этом понятную пользователю терминологию [4]. Языковой инструментарий - это вид программного обеспечения, призванный упростить процесс разработки DSL за счет наличия редактора кода с подсветкой синтаксиса, браузера проектов, отладчика для удобства поиска ошибок и трансформатора для выполнения преобразования моделей в программный код или в модель, спроектированную с использованием другого DSL. В рамках курсовой работы, выполненной на третьем курсе, уже была проведена часть исследований, посвященная данной теме, а именно: был разработан метаязык для описания DSL, в частности определена структура языка, а также способ формирования моделей; реализован прототип компонента описания синтаксиса, включающий в себя подсветку конструкций языка на разных уровнях моделирования, браузер проектов.Эксперты в предметной области способны описать на языке моделирования и детализировать до бизнес-процессов особенности сферы деятельности, четко сформулировать требования и спецификации, а программисты, в свою очередь, - перевести все вышеуказанное в алгоритмическую форму представления посредством использования языков программирования общего назначения. В связи с необходимостью организации процесса разработки таким образом, что будет координироваться работа различных групп специалистов, целесообразно становится использование модельно-ориентированных технологий, таких как модельно-ориентированная архитектура (MDA), модельно-ориентированная разработка (MDD) и др., основная идея которых заключается в генерации целевого кода на основе созданных формальных моделей. Модельно-ориентированный подход к разработке системы предполагает создание многоуровневой модели приложения во время выполнения проектирования и дальнейшее использование построенных моделей в качестве исходного кода, что позволяет оперировать терминами предметной области, а не конструкциями языка общего назначения. Внутренний DSL - это язык, который является надстройкой над выбранным в качестве базового языком программирования. Также для перехода от модели предметной области, описанной с помощью DSL к программе на определенном языке программирования, следует предусмотреть правила трансформации, которые включают в себя вертикальные трансформации (переход от одного уровня иерархии к другому) и горизонтальные (переход от одной модели к другой на одном уровне иерархии).IDE Meta-Tooling Platform (IMP) - это плагин Eclipse, разработанный главным образом компанией IBM с целью упрощения создания IDE для новых языков (рис. При использовании данного плагина необходимо определение только конкретного синтаксиса, представляющего собой контекстно-свободную грамматику, а абстрактный синтаксис строится исходя из него при помощи генератора синтаксического анализатора LPG (см. рис. IMP имеет функциональный редактор, основанный на платформе Eclipse, включающий в себя подсветку синтаксиса, всплывающие подсказки, автозавершение, сворачивание и форматирование кода. MONTICORE - инструментарий для создания текстовых предметно-ориентированных языков, базирующийся на платформе Eclipse (см. рис.1.7). Данный программный продукт для определения DSL использует расширенную грамматику, включающую в себя конкретный и абстрактный синтаксисы, моделирование которых осуществляется с использованием единого источника данных, что позволяет избежать проблем, связанных с избыточностью.Данная платформа позволяет итеративно разрабатывать текстовые предметно-ориентированные языки и выполнять запуск написанных программ в экземпляре среды разработки Eclipse. Spoofax предлагает комплексную среду разработки программных систем, включающую в себя компоненты описания, анализа синтаксиса, трансформации и генерации объектного кода.
План
Содержание
Введение
Глава 1. Анализ языковых инструментариев
1.1 OPENARCHITECTUREWARE
1.2 JETBRAINS MPS
1.3 IDE Meta-Tooling Platform
1.4 MONTICORE
1.5 Spoofax Language Workbench
Глава 2. Описание метода создания текстовых предметно-ориентированных языков
2.1 Расчет трудоемкости разработки компонента проверки синтаксиса
2.2 Требования к метаязыку
2.3 Описание метаязыка
2.4 Алгоритмы разбора грамматики DSL
2.5 Алгоритм проверки синтаксиса модели
2.6 Алгоритм формирования списка подсказок
Глава 3. Проектирование архитектуры языкового инструментария
3.1 Проектирование языкового инструментария
3.2 Проектирование компонента проверки синтаксиса
3.3 Проектирование пользовательского интерфейса
Глава 4. Программная реализация компонента проверки синтаксиса
4.1 Построение дерева разбора
4.2 Анализ модели
4.3 Разработка репозитория
4.4 Тестирование компонента проверки синтаксиса
Заключение
Библиографический список
Приложение А. Диаграмма прецедентов
Приложение Б. Диаграммы последовательностей
Приложение В. Диаграмма классов
Приложение Г. Таблица взаимодействия классов
Приложение Д. Нормативные коэффициенты трудоемкости