【TechTarget中国原创】现今,开发商希望创建一个可以描述域的方式,例如,一个合同的所有特性,他们使用XML,这种方法迫使开发商能够容忍角括号。开发商更愿意容忍角括号,因为要创建一个语法分析程序更具有挑战性。微软公司推出的最新MGrammar(Mg)让开发商又多了一种选择方式。
由于微软公司是在最新的Oslo建模环境下进行工作的,他们试图发明一种可以自动分析数据库文本的语法工具。但是,客户一听说他们的打算,表示非常感兴趣,希望能够建造一个这样的工具,微软则希望对这个Oslo的Mg组件进行测试,这一举措在去年PDC上,就已经实现了。
开发商认为Mg不仅仅是又一个语法分析程序。James Clark在他的建模博客中写到,自己被语法分析程序所困扰,而Mg的工作方式截然不同,它完全是说明性质的。这一点通过创建代表语法分析结果的标号来实现。而且它比典型的语法分析程序更有力度。
Mg是将文本转化为数据的函数转换语言。它和另一个Oslo组件MSchema互为补充,简要介绍数据,同时弥补了MGraph的不足,以便代表数据。
在实施MGrammar之前,首先要进行语言声明。例如,你遇到了针对某个特定域的语言,确定客户和命令,你需要创建一个语言声明,并且确定这些语言的句法部分。Mg会创建一套.Net源码,该套源码可以产生一个组件,这个组件能够定义一个标记输入的词汇。这样开发商就可以使用该词汇对更高级别的句法进行格式化。这个句法的每一个部分都被称为一个产品。
Paul Vick最近从微软公司的调试器小组调到了Mg小组。他说,采用M语法并不是一个翻天覆地的大变化。M语法是为了语言设计,应运而生的。按照他的观点,M语法揭示了编程语言全部的端对端经验,“但是这些经验仅限于前端句法方面。”
在着手工作以前,开发商需要到MSDN网站上下载Oslo CTP,里面包含了Intellipad文本编辑工具,同时你可以使用任何文本编辑程序来创建Mg文件。在“Nutshell中的M语法”一文中,展示了加速运行Mg所需的所有步骤。它所包含的语言规范可以让你审阅生成系统的语言。