Каковы основные отличия между MPS Jetbrains и Eclipse Xtext?

Я использовал Eclipse Xtext в нескольких проектах. Я любил простоту определения грамматики по модели Ecore (meta) и разрешению всему сгенерированному для Вас включая удивительного редактора плагина Eclipse, но мне было довольно неудобно с базовой платформой EMF со всем соединенным проводами в статических полях.

В последнее время я столкнулся с MPS Jetbrains (Система Метапрограммирования). Это основано на совершенно другой философии. В то время как Xtext является для создания основанного на тексте DSLs генерацией синтаксического анализатора для Вас (и инстанцирование тех EObjects), на созданном из MPS языке каждый редактирует непосредственно базовую образцовую структуру. До сих пор я получаю его.

Кто-либо сделал, испытывают и с теми инструментами DSL для указания на основные отличия с точки зрения работы с ними, случаями надлежащего использования и с аудиторией, сложностью, кривая обучения (честно говоря, чтобы начать использовать Xtext, нужно знать довольно много о кишках EMF), генерация кода и т.д.?

50
задан S.L. Barth - Reinstate Monica 24 July 2012 в 20:56
поделиться

1 ответ

Xtext - это традиционный подход на основе синтаксического анализатора, который работает с обычными текстовыми файлами. Их можно отправить по почте, сохранить и сравнить с любой системой контроля версий и даже изменить вне редактора с помощью вашего любимого инструмента командной строки. Он тесно интегрируется с Eclipse EMF и отлично работает с целым набором инструментов, которые вы можете найти в экосистеме Eclipse. Недавно он превратился (и продолжает развиваться) в своего рода «набор инструментов для разработки языков программирования», где он позволяет поддерживать все виды дополнительных инструментов.

MPS, с другой стороны, работает с проекционным редактором, который просто «выглядит» как текст, пока вы работаете в среде. Базовый формат хранения зависит от инструмента (читай: невозможно использовать без специальных программ) и не анализирует простые текстовые файлы. Это дает некоторые большие преимущества, такие как встраивание произвольных языков (например, Regex внутри SQL внутри Java). Цепочка инструментов позволяет создавать модели для моделирования преобразований, которые вначале кажутся необычными для редактора, но также являются мощными.

Оба инструмента каким-то образом запирают вас в своем мире (MPS / Eclipse). Несмотря на то, что вы можете запустить оба в автономном режиме, нельзя легко запустить редактор Xtext внутри другой IDE. То же самое и с MPS. Я бы сказал, что Xtext «более открытый», поскольку он работает с обычными текстовыми файлами, с одной стороны, и хорошо работает с установленными инструментами (EMF и Eclipse в целом), с другой.

Это ответ на ваш вопрос? Я постараюсь дать вам более точные ответы, если у вас возникнут более подробные вопросы.

56
ответ дан 7 November 2019 в 10:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: