1

希望这个问题不是太笼统:

按照惯例,MDSD被定义为将模型规范转换为可编译程序的来源。

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

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

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

4

2 回答 2

1

您所说的是“可执行规范”。这在您的规范完整时有效(例如,涵盖所有情况;许多当前的“模型”不完整,或者仅凭借中间的附加 Java 源代码文本才完整,这不容易解释) ,并且您的解释器足够快,因此用户群并不关心。

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

我不知道有多少人执行“模型”。我认为他们都认为解释器太慢了,或者他们被模型不完整/低级源代码阻抗不匹配所困扰。

于 2011-04-26T23:44:59.033 回答
0

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

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

但是您可能需要在以下情况下使用编译策略:

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

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

于 2018-04-20T15:14:00.327 回答