Как сравнивать MDSD с моделью интерпретации стиля кодирования - PullRequest
1 голос
/ 27 апреля 2011

Надеюсь, этот вопрос не слишком общий:

Условно MDSD определяется как преобразование спецификаций модели в источники скомпилируемых программ.

Помимо этогоможно интерпретировать модель.

Хотя интерпретация обычно имеет тенденцию быть медленной, развертывание обновленной модели может быть проще.

В общем: почему нужно компилировать модель с использованием MDSD?Когда следует интерпретировать модели?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

То, о чем вы говорите, это «исполняемые спецификации».Это работает, когда ваша спецификация complete (например, охватывает все случаи; многие текущие «модели» не завершены или являются полными только благодаря дополнительному исходному коду Java text inсередина этого, что нелегко интерпретировать), и ваш переводчик достаточно быстр, так что пользователям все равно.

Но в этом-то и дело.Причина, по которой существуют компиляторы, заключается в том, что интерпретация спецификаций обычно в 100 раз медленнее, чем скомпилированный эквивалент.(Вы когда-нибудь видели или использовали интерпретатор C на самом деле?).

Я не знаю многих людей, которые выполняют "модели".Я думаю, что все они полагают, что интерпретатор будет слишком медленным, или они зациклены на неполноте модели / несоответствии исходного кода низкого уровня.

0 голосов
/ 20 апреля 2018

Обе стратегии могут быть действительными и ценными при определенных обстоятельствах.

Когда это возможно, стратегия интерпретации модели, вероятно, лучше скомпилированной, поскольку вам просто нужно изменить свою постоянную модель, чтобы изменить поведение вашей модели.развернутое приложение, без перекомпиляции и развертывания.

Но вам, вероятно, нужно использовать стратегию компиляции, когда:

  • вы не можете выразить (или не хотите) 100% требуемой реальностив ваших моделях.В этом случае вы, вероятно, захотите написать ручной код в сгенерированном коде.
  • производительность является ключевой проблемой для вашего приложения

Недавно я разработал редактор моделей GUI, интерпретируя его модели наМуха, чтобы сделать полностью работоспособными редакторы форм.Производительность не была проблемой, но, тем не менее, был сгенерирован код для этих графических интерфейсов, поскольку у нас были огромные графические интерфейсы с тысячами параметров (для динамического приложения космического полета) и множество пользовательских поведений пользовательского интерфейса, которые требовали полной реализации дополнительного исходного кода.

...