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

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

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

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

领测软件测试网

general-purpose 和 domainspecific 之间,并不是对立的;我需要所有的自由,我希望能够做任何事情,同时有很高的生产效率;目前为止还没有什么好方法能够做到这点;理想情况下,我能够为程序的各个特定部分使用不同的语言,而它们能够融洽的一起工作,并且开发环境会完全支持这些语言,包括重构,代码补全,导航,以及主流语言具有的所有其它生产力工具

为了获得这种独立性,我需要有创建、重用、修改语言和环境的自由;为了使这种自由是可行的,它需要很容易的被获得;如果我们解决了易于进行语言和环境的开发的问题,对程序员来说将是一个巨大的进步;这就是Language Oriented Programming的切入点

要理解Language Oriented Programming是什么,让我们首先看一下今天的主流编程方法,它基本上是这样:

思考: 你需要编程解决一个问题,因此你在你的头脑里形成了如何解决这个问题的概念模型

选择: 你选择了某种general-purpose的语言来编写解决方案

编程: 你通过将你的概念模型艰难的映射到编程语言来编写解决方案

编程这一步是瓶颈所在,因为大部分情况映射不是容易的和自然的;这种方法在程序员表达复杂的设计方面已经被证明是低效的;相对的,下面是LOP的工作方式:

思考: 你需要编程解决一个问题,因此你在你的头脑里形成了如何解决这个问题的概念模型

选择: 你选择了某些特定的DSLs来编写解决方案

创建: 如果没有合适的DSL适合你的问题,你便创建一种DSL来适应你的问题

编程: 你通过将你的概念模型相对直接的映射到DSLs来编写解决方案

现在,编程这一步is much less of a 瓶颈了,因为DSLs大大简化了如何将问题翻译成某种计算机能够理解的东西;看起来困难已经简单的转移到了“创建”这一步,然而,通过联合使用工具支持和将LOP应用到自身,将使这一步更加简单

LOP 背后的动机基本是这样的:我想用我正试图解决的问题相关的概念和意图的词汇来工作,而不是被迫将我的思想翻译成某种general-purpose的语言所能理解的概念(比如:类,方法,循环,条件,等等...);为了达到这个目标,我需要使用domain-specific languages;怎样得到它们呢?创建它们; 

我已经开始开发一个通用的平台(the Meta Programming System)来设计domainspecific languages,带有工具支持和开发环境;它将允许程序员像现在编写程序一样容易的来定义语言;这个平台将完全支持LOP,给程序员为程序的每一部分选择使用最合适的语言的自由,而不是将他们绑在某种固定的general-purpose的编程语言上

MPS 只是Language Oriented Programming的一个示例,尽管我在这里使用MPS来做示例,而实际上LOP可以用许多不同的方法来实现,你自己就可能知道一些替代方法;LOP 的概念不等同于它的实现,就像OOP的概念不等同于Java或C++或Smalltalk一样

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


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

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