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

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

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

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

领测软件测试网

人们习惯性的认为程序是作为文本来存储的,也就是说,一个字节流;为什么不应该是呢?毕竟有无数的工具来编辑、显示、操作文本;今天的编程语言的核心部分是文法器,解析器,编译器和面向行的调试器;但是程序的文本只是程序的一种表现形式;程序不是文本;强行把程序塞到文本里引起了大量你可能还不知道的问题;我们需要一种不同的方法来存储并和我们程序一起工作

当编译器编译源代码时,它把文本解析成称作抽象语法树的树状结构;当程序员阅读源代码时,他们在脑海中做了本质上相同的事情;我们仍然不得不考虑程序的树状结构;这就是为什么我们要有花括号,方括号,圆括号等;这也是为什么我们需要格式化和缩进代码和遵守编码规范,因为这样就能够更容易的阅读源代码

我们为什么使用文本存储呢?因为当前,阅读和编辑程序最方便和最通用的方法还是使用文本编辑器;但是我们会为此付出代价,因为程序的文本表示有重大的缺点,其中最重要的是基于文本的编程语言非常难于扩展;如果程序以文本的形式存储,你就会需要一个无歧义的文法器来解析程序;当为语言加入新特性时,维护语言无二义性的扩展变得日益困难;我们将需要发明更多类型的括号、操作符、关键字、顺序规则、嵌套,等等;语言的设计者们花费了无数时间来思考语法,并试图发现扩展语言的新方法

如果我们打算让创建语言变得容易,我们就需要将程序的表示和存储从程序本身分离开;我们应该直接将程序存为结构图,因为这允许我们对语言做任何我们喜欢的扩展;有时,我们甚至根本不需要考虑文本存储;今天的一个很好的例子是Excel spreadsheet.百分之九十九的人根本不需要处理存储格式,当这成为问题时总会有各种导入导出功能可用;今天我们使用文本的真正原因是我们没有比文本编辑器更好的编辑器,但是我们可以改变这一点

问题是文本编辑器很愚蠢,并且不知道如何与程序的图状结构一起工作;但是使用正确的工具,编辑器将能够直接和图状结构一起工作,并且能够让我们自由的使用任何编辑器提供的我们喜欢的可视化表现形式;我们可以把程序做成文本、表、图、树、或其它任何形式;我们甚至能为不同目的使用不同的表现形式,比方说,图形化表示用来浏览,文本化表示用来编辑;我们能够为代码的不同部分使用领域相关的表示,比如为数学公式使用图形化的数学符号,为图表使用图形化的图表,为 spreadsheets使用行和列,等等;我们能够为问题域使用最合适的表现形式,可以是文本,但不限于文本;最好的表现形式依赖于我们如何思考问题域;表现形式的灵活性也将使我们的编辑器比以往更加强大,因为不同的表现形式有不同的方式去编辑它们

What Is a Language in LOP? 

最后,我应该阐明我认为的“语言”是什么;在LOP中,一种语言是通过三个主要的要素来定义的:结构、编辑器、和语义;结构定义了抽象语法、支持的概念、以及如何安排它们;编辑器定义了具体的语法,如何描绘和编辑语言;语义定义了行为,它如何被解释,和/或它如何被转换成可执行代码;当然,语言还可以有其它方面,比如约束和类型系统

Part II. INTRODUCTION TO META PROGRAMMING SYSTEM 
Creating Languages in MPS 
我已经解释了为什么我们需要容易的创建新的语言,但是,我们如何才能让它容易呢?如果你turn around这个问题,并且把Language Oriented Programming应用于它自身,你会很快看到答案;This calls for a little self-referential bootstrapping, which can seem tricky, but be patient. 一旦你理解了这个,你将得到LOP真正的力量(一个LOP的元层次)

延伸阅读

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


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

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