воскресенье, 16 октября 2016 г.

XTEXT - Language Engineering for Everyone

Раз уж зашел разговор (см предыдущий пост) о трудоемкости создания моделей с помощью построения визуальных диаграмм, нельзя не упомянуть про проект XText. Сторонники этого проекта всегда упоминают про эту проблему и говорят о том, что создавать формальные модели гораздо проще с использованием текстовых описаний. А уж анализировать и визуализировать модели можно с помощью визуальных диаграмм. Именно такой подход был продемонстрирован в в предыдущем посте про автоматическое построение диаграмм.

Технология XText позволяет создавать и интегрировать в инструменты моделирования текстовые редакторы формальных моделей с подстветкой синтаксиса, валидации на соответствие схеме языка моделирования (мета-модели), контекстными подсказдками.

XText позволяет определять для любого языка моделирования предметной области (далее DSL) текстовую грамматику и сгенерировать для данного DSL Eclipse редактор с подсветкой синтаксисам и подсказками.

При создании\редактировании модели в редакторе, сгенерированном XText,
"за кадром" строится EMF модель. С этой моделью можно оперировать через API 
из Java (генерируется на основе описания грамматики DSL), просматривать и 
редактировать модель с помощью графических редакторов (в том числе Sirius),
просматривать/редактировать в иерархическом редакторе.

Пример редактора DSL, сгенерированного XText

Ссылки по теме

XTEXT - Language Engineering for Everyone

5 minutes tutorial (Hello World)
https://eclipse.org/Xtext/documentation/101_five_minutes.html

15 minutes tutorial


Свой DSL можно интегрировать со стандартными языками моделирования. Например, в DSL делать references на элементы UML модели. Немного о скрещивании DSL с UML я писал в ранее.

Комментариев нет:

Отправить комментарий