• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试之下一代编程范型主要原则

发布: 2009-9-02 11:23 | 作者: 不详 | 来源: 领测软件测试网 | 查看: 16次 | 进入软件测试论坛讨论

领测软件测试网

当人们听我说我们的程序将存储为图形并且我们需要特定的编辑器,我确信很多人认为我将要谈到图形编辑器,事实不是这样子的;尽管程序是图形形式,编辑器却不一定非得将程序描绘成图形;事实上,只有少数情况下图形编辑器才是有用的(也就是说,当它合适的时候,比如对数据库表);相反,我们的Editor Language有更好的灵感来源,讽刺的是,它来自文本编辑器

如果你用文本编辑器浏览一个典型的程序,你可以想象编辑器被分成了矩形单元;一些单元包含必需的标识如关键字、花括号、圆括号等,其它的单元包含用户定义的标识,如类和方法的名称;大的单元由小的单元组成,像方法块包含语句,而语句可能包含自己的嵌套块;事实上,任何主流编程语言中任何良好构造的程序都可以分解为矩形单元的集合;那么,在Editor Language中,你不需要想象这些单元,因为编辑器就是简单的由矩形单元组成的

单元的使用有一些有趣的优点;首先,当直接工作在程序图形而不是程序文本上时,单元可以完美的模仿甚至超过标准的文本编辑器;第二,单元不局限于文本,你可以往单元里塞进颜色选择器、数学符号、图表、矢量图、或任何别的什么;最后,这种单元形式的layout是可选的,程序员可以提供不同的机制,单元形式的 layout只是一种有用的缺省设置

因此,Editor Language帮助你定义语言中每个概念对应的单元的layout;你可以定义哪些部分是不变的,像括号或其它修饰符号,哪些是可变的,需要用户去定义的;Editor Language也帮助你在你自己的编辑器中加入强大的特性,像自动完成、重构、导航、语法加亮、错误加亮、以及任何其它你想到的事情;因此你能够增加现在的编辑器如IntelliJ IDEA等拥有的功能到你自己的语言中;这是可能的,因为程序和语言被构造为图形,而我们有专门的Editor Language帮助我们创造强大的编辑器

Transformation Language 

Structure Language和Editor Language已经共同提供了一些功能,你能够用它们和其他人交流思想,比如画UML图,或者编写其它类型的文档;然而,大部分时间我们是想让我们的代码做点什么,因此,我们必须找到一种方法让它能够执行;有两种主要的方式来做这件事情:解释和编译

DSLs支持的解释方式帮助定义计算机应该如何解释程序,DSLs支持的编译方式帮助定义如何为程序产生可执行代码;我将在以后的文章中讨论对解释方式的支持,现在我想说明一下MPS是如何支持编译方式的

编译意味着拿到源代码,并从中产生某种形式的可执行代码;对于结果代码有多种可能的形式;为产生可执行代码,你可以生成本地机器码,也可以生成虚拟机字节码;或者,你可以生成另外一种语言的源代码(比如Java,C++),然后用现有的编译器转换为可执行代码;类似的,你甚至可以产生某种解释型语言的源代码,用现有的解释器解释执行

为了避免处理这么广泛的目标格式,我们的方法是用MPS来做每一件事;首先,你在MPS中使用Structure Language定义一种目标语言,这种目标语言和目标格式之间应该有直接的一对一的映射;例如,如果你的目标格式是机器码,你应该用MPS定义一种对应机器码的目标语言;如果目标格式是Java源代码,你应该定义一种类Java的目标语言;目标语言不必支持目标格式所有的功能特性,只为你需要的语言特性进行简单的一对一的映射即可

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网