logo search
Bolshakov_Poyasnitelnaya_zapiska

2.2.2.1.4 Разработка текстового редактора

Для разработки языка была выбрана платформа разработки языков Xtext, встраиваемая в интегрируемую среду Eclipse. Платформа представляет собой инструментарий, включающий специальные языки и программные компоненты для описания различных аспектов предметно-ориентированного языка и реализации следующих основных компонентов: синтаксического и семантического анализаторов, абстрактного синтаксического дерева, сериализатора, форматирования кода, компонента сворачивания кода, линковщика, генератора и интерпретатора. Данные компоненты основаны и интегрируются с Eclipse Modelling Framework (EMF – платформа моделирования Eclipse) [41]. Гибкость архитектуры Xtext позволяет заменять часть готовых компонентов инструментария на собственные за счет использования технологии встраивания зависимостей (dependency injection) Google Guice [42].

Процесс построения транслятора в рамках технологии Xtext предполагает проведение следующих этапов работ:

1) разработка грамматики языка и реализация синтаксического анализатора;

2) наложение семантических ограничений на синтаксические конструкции языка как валидации синтаксически корректной программы на разрабатываемом языке;

3) разработка генератора кода целевого языка по синтаксическому дереву, полученному на первых двух этапах;

4) доработка необходимых графических компонентов инструментария.

Общая схема разработки текстового редактора при помощи технологии Xtext приведена на рисунке 2.7.

Рисунок 2.7 - Схема разработки текстового редактора при помощи технологии Xtext