如何将MDSD与模型解释编码风格进行比较

时间:2011-04-26 23:02:18

标签: compiler-construction interpreter mdsd

希望这个问题不太通用:

传统上,MDSD被定义为将模型规范转换为可编译程序的来源。

除此之外,人们可以解释模型。

虽然解释通常较慢,但更新模型的部署可能更简单。

一般情况:为什么要使用MDSD编译模型?什么时候应该解释模型?

2 个答案:

答案 0 :(得分:1)

您所说的是“可执行规范”。当您的规范完成时(例如,涵盖所有情况;许多当前的“模型”不完整,或仅通过其他Java源代码 text 在它的中间,这是不容易解释的),你的翻译速度足够快,所以用户群不关心。

但这就是问题所在。编译器存在的全部原因是因为解释规范通常比编译的等价物慢100倍。 (曾经见过或曾经使用过真正的C语译员吗?)。

我不知道有很多人执行“模特”。我认为他们都认为解释器太慢,或者他们对模型不完整性/低级源代码阻抗不匹配感到不满。

答案 1 :(得分:0)

在某些情况下,这两种策略都是有效且有价值的。

如果可能,模型解释策略可能比编译策略更好,因为您只需修改持久模型即可更改已部署应用程序的行为,而无需重新编译和部署。

但您可能需要在以下时间使用编译策略:

  • 您无法表达(或不想要)您模型中所需的100%现实。在这种情况下,您可能希望在生成的代码中编写手动代码。
  • 性能是您的应用程序的关键问题

我最近开发了一个GUI模型编辑器,即时解释其模型以呈现完全可操作的表单编辑器。性能不是问题,但是为这些GUI生成了代码,因为我们拥有包含数千个参数的巨大GUI(用于太空飞行动态应用程序),以及许多需要一些额外源代码才能完全实现的自定义UI行为。 / p>