是否正在将内部DSL转换为外部DSL反模式?

时间:2008-10-11 20:25:19

标签: virtual-machine dsl oslo

在我们的遗留系统中,我们编写了自己的VM来在运行时执行内部DSL。内部VM仅用于运行我们的内部DSL。我们正在重写我们的遗留应用程序。我们正在考虑的一个想法是,将我们的内部DSL转换为外部DSL(C#或Java)并利用其VM。

没有明确的指导方针可以为我们的内部DSL编写我们自己的VM,而不是转换为外部DSL并将其运行到VM。

2 个答案:

答案 0 :(得分:3)

内部DSL / VM与外部DSL / VM决策与所有构建与购买与下载决策相同。所有软件的指南都很清晰,相同。

为什么支持您自己的VM,当其他人为您支持Java或Python时?

这是一些明确的指导方针。请注意,这些是所有软件的相同指南。

  1. 继续维护自己的软件会更便宜吗?在这种情况下,DSL和VM?

  2. 您自己的DSL和VM是否优于Java或Python?通过“更好”,您必须填写任何质量因素的组合:更快,更小,更可靠,更好的功能,更少的资源使用,更可审计,更安全等。

  3. 不要被DSL和VM混淆。没什么特别的;它只是更多的软件。

答案 1 :(得分:1)

绝对不是反模式。与内部DSL相比,外部DSL具有许多优点。在您的情况下,与宿主语言或实现平台的独立性就是其中之一。其他好处是更好的语法灵活性,使用模型转换,模型查看等模型驱动的方法的可能性。