Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler construction 如何将MDSD与模型解释编码风格进行比较_Compiler Construction_Interpreter_Mdsd - Fatal编程技术网

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

Compiler construction 如何将MDSD与模型解释编码风格进行比较,compiler-construction,interpreter,mdsd,Compiler Construction,Interpreter,Mdsd,希望这个问题不会太笼统: 传统上,定义为将模型规范转换为可编译程序源 除此之外,还可以解释模型 虽然解释通常较慢,但更新模型的部署可能更简单 一般来说:为什么要使用MDSD编译模型?什么时候应该解释模型?您所说的是“可执行规范”。当你的规范完成时,这是可行的(例如,覆盖所有的情况;许多当前的模型)不完整,或者仅仅是由于中间的附加java源代码文本,这是不容易解释的),而且你的解释程序足够快,所以用户基础不关心。 但这就是问题所在。编译器存在的全部原因是因为解释规范通常比编译的等效规范慢100倍。

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

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

除此之外,还可以解释模型

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


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

您所说的是“可执行规范”。当你的规范完成时,这是可行的(例如,覆盖所有的情况;许多当前的模型)不完整,或者仅仅是由于中间的附加java源代码文本,这是不容易解释的),而且你的解释程序足够快,所以用户基础不关心。 但这就是问题所在。编译器存在的全部原因是因为解释规范通常比编译的等效规范慢100倍。(曾经见过或真正使用过C语言解释器吗?)


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

你所说的是“可执行规范”。当你的规范完成时,这是可行的(例如,覆盖所有的情况;许多当前的模型)不完整,或者仅仅是由于中间的附加java源代码文本,这是不容易解释的),而且你的解释程序足够快,所以用户基础不关心。 但这就是问题所在。编译器存在的全部原因是因为解释规范通常比编译的等效规范慢100倍。(曾经见过或真正使用过C语言解释器吗?)


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

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

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

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

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

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

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

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

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

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

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

Thx Ira!我理解你的观点,但我完全不接受。例如,如果模型只定义GUI的布局和一般行为,则解释速度较慢不一定是个问题。@Stefan:我介绍了您的情况:“……当您的解释器足够快,用户群不在乎时”。如果与绘制GUI相比,解释模型以绘制GUI的开销较小,那么可以使用解释模型。(不有趣?你的问题才一天!)非常有趣!我想得到更多的答案,但我觉得,检查当前的答案是有礼貌的,因为其他答案还很少。甚至复习了这个问题。我非常感兴趣!谢谢再次指出GUI点。谢谢!我理解你的观点,但我完全不接受。例如,如果模型只定义GUI的布局和一般行为,则解释速度较慢不一定是个问题。@Stefan:我介绍了您的情况:“……当您的解释器足够快,用户群不在乎时”。如果与绘制GUI相比,解释模型以绘制GUI的开销较小,那么可以使用解释模型。(不有趣?你的问题才一天!)非常有趣!我想得到更多的答案,但我觉得,检查当前的答案是有礼貌的,因为其他答案还很少。甚至复习了这个问题。我非常感兴趣!再次指出GUI点的Thx。