Система метапрограммирования JetBrains

Altova XmlSpy делает это хорошо - можно найти обзор здесь

9
задан 10 August 2009 в 23:31
поделиться

2 ответа

У меня нет личного опыта работы с MPS, но об этом упоминалось в недавнем выпуске Herding Code с Маркусом Фёльтером . Вот мое понимание. MPS - это редактор проекций, который означает, что вместо анализа и редактирования текста вы редактируете напрямую структуру данных языка подчеркивания. Как упоминает Маркус, MPS позволяет вам определять свой собственный язык, но вы также можете вводить новые языковые концепции в существующие языки. Например, вы можете добавить новое ключевое слово в Java за считанные минуты. MPS стирает границы между внутренними и внешними DSL, и благодаря этому вы получаете статическую типизацию и поддержку инструментов, которых вы не получили бы при разработке DSL с помощью динамического языка, такого как Ruby.

вы можете добавить новое ключевое слово в Java за считанные минуты. MPS стирает границы между внутренними и внешними DSL, и благодаря этому вы получаете статическую типизацию и поддержку инструментов, которых вы не получили бы при разработке DSL с помощью динамического языка, такого как Ruby.

вы можете добавить новое ключевое слово в Java за считанные минуты. MPS стирает границы между внутренними и внешними DSL, и благодаря этому вы получаете статическую типизацию и поддержку инструментов, которых вы не получили бы при разработке DSL с помощью динамического языка, такого как Ruby.

7
ответ дан 4 December 2019 в 11:07
поделиться

MPS - интересный зверь и имеет очень большой потенциал. Идея просто фантастическая:

  • Внутри IDE (MPS) пользователь более или менее визуально определяет свои DSL.
  • IDE позволяет генерировать не только сам язык (среда выполнения или то, что она делает), но и также «инструмент», известный как более или менее полноценная IDE, который он или другие пользователи могут использовать для редактирования этого нового языка.

При этом, к сожалению, по крайней мере для фактических доступных версий MPS, Jetbrains не смогла предоставить вышеуказанное (по крайней мере, для меня), потому что: - он очень-очень сложный и сложный в использовании - как бы не сделали его авторы простого в использовании IntelliJ. - существует слишком много понятий и «способов», которым пользователь должен научиться, прежде чем он сможет сделать что-то полезное, и все же у человека возникает ощущение, что он попадает в темноту. - IDE не будет генерировать для вас IDE, но что-то внутри MPS тоже, только «редактор на основе ячеек» (в этой версии).

Я пробовал MPS несколько раз (потому что концепция такая замечательная и многообещающая), но, к сожалению, на данный момент я не смог сделать с ней что-то полезное. Возможно, я был слишком глуп для MPS, но в то время, когда я только разбирался в MPS, я смог предоставить полностью готовый к использованию DSL на основе Groovy.

Я все еще слежу за развитием MPS и надеюсь, что однажды я выполню то, что было изначально обещано, поскольку это такая фантастическая идея.

2
ответ дан 4 December 2019 в 11:07
поделиться
Другие вопросы по тегам:

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