首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实用元编程系统(MPS)

实用元编程系统(MPS)
EN

Software Engineering用户
提问于 2010-10-27 01:36:03
回答 2查看 1K关注 0票数 7

这与JetBrains的元编程系统或MPS有关。到目前为止,从我学习如何使用议员的努力中,我只知道它的基本目的,而且它是非常复杂的。

下院议员值得学习吗?

是否有人已经有效地使用MPS为这些语言创建自己的语言和编辑器,并使用这些创建的编辑器作为他们的主要编程方式?如果是这样的话,他们用这个做了什么类型的程序?

和下院议员合作有什么好处和缺点?

EN

回答 2

Software Engineering用户

发布于 2010-12-18 21:19:00

我发现Boo和Ruby中的元编程工具对于构建特定于域的语言非常有用。在我为测试自动化构建DSL时,Ayende的Boo中的域特定语言很有帮助。它可能不直接适用于JetBrain的系统,但它应该有助于理解灵活的语言基础结构的潜力。

为了完成任何有用的事情,Java本身有相当数量的样板是必需的。如果DSL和代码生成工具设计得很好的话,它们可以帮助隔离其中的一些部分。我不太了解Jetbrains工具,不足以告诉您它是否值得学习,但是了解如何构建DSL和理解元编程是完全值得的。看起来,JetBrains的产品占据了一个类似于的利基,但我发现微软的工具在我有限的使用中有点令人沮丧,主要是由于对可视化工具的强调。由于MPS似乎在关注生成的DSL的文本编辑经验方面做得很好,这可能足以说服我去挖掘它。

有一种亚文化的开发人员对任何一种元编程都愤世嫉俗,还有另一种对X语言持怀疑态度的亚文化,其中X不是他们所习惯的语言。足够老的程序员可能会想起4GL运动,就像许多过度炒作的努力一样,并不是所有的供应商都承诺这样做;一些供应商声称他们的语言可以让理解他们领域代码的商人编写代码,并将对低级程序员的需求降到最低。这很难解决。

因此,您可能对使用这些工具有一些组织上的阻力,但与任何有效使用的工具一样,它可以使您的团队更有效率和更有效率。

缺点是,除非您已经有了这样做的经验,否则构建DSL可能仍然要花费您更多的时间,而不是像往常一样构建类似的业务逻辑:使用通常语言的笨拙构造。在我看来,随着时间的推移,回报是值得的。如果您曾经使用过像Ruby中的Rails那样有效地使用元编程的系统,那么您将很快了解DSL是如何得到回报的。如果您已经通过修改编译器管道(至少在Boo中没有听起来那么痛苦)来构建DSL,那么您很快就可以更好地表达您的问题。

但是,除非您已经有了一个已经在他们的元素中使用这些工具的团队,否则您将需要缓慢地开始。也许为合同或产品定价的商业规则将受益于一种简洁易懂的语言,这种语言可以让你快速响应产品、折扣方案等方面的变化。或者你可以找到你拥有的最繁琐、最重复的编码任务,并探索简化该任务的DSL是否对你有帮助。

票数 2
EN

Software Engineering用户

发布于 2011-01-07 00:29:49

MPS的伟大之处在于编辑器可以更复杂,因为您正在编辑AST而不是只编辑文本。

例如,有人使用MPS,查看http://www.realaxy.com并查看视频。我想你会印象深刻的。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/15002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档