在我们的遗留系统中,我们编写了自己的VM来在运行时执行内部DSL。内部虚拟机仅用于运行我们的内部DSL。我们正在重写我们的遗留应用程序。我们正在考虑的一个想法是,将内部数字用户线转换为外部数字用户线(C#或Java),并利用它们的虚拟机。
没有明确的指导方针,什么时候为我们的内部DSL编写我们自己的VM,而不是转换到外部DSL并运行它。
发布于 2008-10-11 20:38:00
内部DSL/VM与外部DSL/VM的决策与所有构建与购买与下载的决策相同。所有软件的指导方针都是明确的,都是一样的。
既然别人会为你支持Java或Python,为什么还要支持你自己的VM呢?
这里有一些明确的指导原则。请注意,这些准则对所有软件都是相同的。
不要混淆DSL和VM。这没什么特别的,只是更多的软件而已。
发布于 2010-01-13 02:31:52
它绝对不是反模式。与内部DSL相比,外部DSL具有许多优势。在您的案例中,独立于宿主语言或实现平台就是其中之一。其他好处是更好的语法灵活性,可以使用模型驱动的方法,如模型转换,模型查看等。
https://stackoverflow.com/questions/194576
复制相似问题