我在视觉工作室开发了一些DSL.最初,我发现VS2010有一个可视化和建模SDK.它有一个名为DSL工具的工具.但它似乎只适用于图形DSL开发.
然后我看到一些帖子说"奥斯陆"是一个用于开发文本DSL的工具,它"是"微软产品 - 微软不再支持该工具.http://blogs.msdn.com/b/modelcitizen/archive/2010/09/22/update-on-sql-server-modeling-ctp-repository-modeling-services-quot-quadrant-quot-and-quot- M-quot.aspx
因此,我想知道我是否想开发一个文本DSL,哪种工具最好?如果我使用F#powerpack和FSLex和FSYacc实现DSL解析器,你怎么看?
过去的一年里,在.NET社区(ala Qi4j)中围绕COP似乎引起了一些兴趣.一些人已经推出了自己的COP框架(参见下面的链接),看起来.NET 4.0的Dynamic Dispatch和MEF可能在任何.NET COP框架中都有潜在的作用.
一方面,很多这样的事情似乎可以追溯到System/38天的想法(是的,我是一个老家伙),尽管另一方面它似乎也非常适合Oslo(建模和存储库)).任何人都可以评论微软是否在COP上做任何工作?
最近的一些.NET COP框架工作:
Hendry Luk - 滚动你自己的COP
Yves GoEleven.com - 警察 - 概念证明
AndersNorås - 诡计还是特质?使用C#进行面向组合编程
MagnusMårtensson - Unity应用程序块上面向复合的编程高峰
我很难绕过这个并且需要一些帮助来理解转移减少并减少冲突.我有一个语法,我似乎无法理解为什么它有问题.我可以附上语法,但我想知道这是如何工作的.
第一个问题,MGrammer创建了什么类型的解析器?据我了解,shift reduce和reduce reduce冲突取决于解析器的类型.
第二个问题,什么意味着减少减少冲突和什么意味着转移减少冲突?
我知道词法分析和正式语法的基础知识,但是自从我使用语言设计以来已经有一段时间了,所以这里的任何帮助都是非常合适的.
我正在使用一种空白重要的语言,我想知道在MGrammar中这样做的可能性,我是否需要看一眼才能解决歧义?
在参加了关于奥斯陆/ MI的演讲之后,我正在努力看到使用它优于现有方法的优势以及在什么情况下它会有用.
我知道它很新,并不是所有的细节都已经发布等等但是有些人可以给我一些优势,当你可能会使用它时?
谢谢,
亚历克斯
我观看了很少关于"奥斯陆"的视频/网络直播,但我仍然没有看到它们是如何结合在一起的.
我知道奥斯陆是一个建模平台.
创建DSL的过程是什么?
它不仅仅是创建DSL的工具吗?
我知道MGramma用于创建DSL的语法.
什么是M语言?
什么是MSchema?
创建MGrammar并将其编译为.mgx后,下一步是什么?
我一直在使用奥斯陆作为MSchema.效果很好.我可以为数据库设计编写一个M Schema,并生成T-SQL以使用PK,FK构建整个数据库,检查完整性等.我已经设置了一个.bat文件来将.m编译成.mx然后加载它进入数据库,然后运行SqlMetal进入我的项目,并在30秒内继续我的更改.我喜欢它.
好的,现在我正在进入mGrammar.我不太确定如何将它合并到我的应用程序中,但我会弄明白的.我首先需要设置Intellipad给我输入/语法/输出三联画.我很难过.我无法想出用流程设置它的任何方法.是的,我可以接受song.mg项目并将其重命名,但这并没有让我对这个东西如何运作有任何见解.有任何想法吗?
在我正在使用的应用程序脚手架项目中,我正在尝试决定是否使用Oslo,T4或CodeDom来生成代码.我们的目标是将依赖关系降至最低,并从用户故事中为域驱动设计驱动代码生成.第一步是从用户故事创建测试,但我们希望领域专家能够在各种不同的媒体(例如自定义应用程序,Word等)中编写他们的故事,并且仍然可以从故事.
到目前为止我所知道的:
您使用上述任何工具有什么想法,经验等等.我们希望坚持使用Microsoft或开源工具.
开罗成名的微软正在开发一个新的建模平台 Oslo .微软服务器和工具业务高级副总裁Bob Muglia表示,建模的好处一直很明显.
从简单实用的角度来看,奥斯陆给用户带来的明显好处是什么?
我刚开始玩特定领域的工具开发,而且我正在使用Visual Studio SDK DSL Tools.但是,我听说微软还有另一项针对特定领域开发的计划,称为"奥斯陆".
我的印象是DSL Tools专注于图形领域特定语言,而Oslo专注于文本语言,但我不确定.
有人可能会指出"DSL Tools"和"Oslo"之间的区别是什么?