脚本语言, 领域语言与软件自动构造


我对MDA一向不太关心它的层次结构以及转换方法,因为最重要的而且最难解决的是领域语言,如何让开发者制定最合适的领域语言才是关键。SQL是一种领域语言,它只对关系数据库进行一般操作,而且有标准的语法,世界通用。操作系统的的shell语言也是局限在宿主操作系统中的领域语言,他们的共同特征是:
1。局限在某一领域
2。不包含或很少包含界面,大多采用command line交互
3。开发者很容易掌握,说明他们很好的描述了这个领域的特征
4。基本命令都是上下文无关的服务,命令的粒度有大有小,很容易组合。
5。命令格式包括:命令名称,操作对象,操作选项,当然和普通的函数表示也没有太大差别,但是可读性就好多了,更何况在使用时还有帮助显示


今天本来想再写一点关于面向对象语言的缺点,在搜集资料的时候突然翻到这个帖子:

脚本语言:21世纪的高级编程语言 http://www.tclchina.com/article/translation/scripting_21/jiaobenbiancheng_cn.htm
Scripting: Higher Level Programming for the 21st Century
http://www.tclchina.com/article/translation/scripting_21/jiaobenbiancheng.htm

发现我的想法和作者的还是比较相近的,作者提到的很多观点都和我每天在公交车里遐想的差不多。而且作者确实做了一些面向对象语言和最近流行的脚本语言之间的比较,就更有说服力了。

每一次程序语言的变革就像资本论中生产力和生产关系的发展一样,程序语言代表生产关系,软件工程代表生产力,当软件项目越来越复杂,程序语言也需要不断变化以提高开发效率,降低开发风险。具体到语言结构上,基本反映在以下几个方面:可读性,可重用性,可扩展性。

C++,Java等语言至少还将统治计算机领域十年,以后是否会成为脚本语言的天下也很难说,然而可以肯定的是,现在开发中遇到的很多困难可以在语言层面上得到解决,比如C++中的悬挂指针,Java中的NullPointerException,在新的开发语言中将转化成更容易被处理的形式。整天埋头坐在电脑面前调试的程序员将成为稀有动物。

对于嵌入式领域,即使脚本语言可施展的空间很小,也并非没有用武之地。手机中的软件动辄几十万的代码也是很正常的,维护最基本的一行一行的代码是一件很痛苦的事情,不仅工作量大,还要冒着引入新问题的风险。相反换一个思考方向,手机软件是一个相对固定的领域(至少相对PC是这样),定义一套这个领域内部的标准语言,一边整合内部的程序,一边向用户开放接口,将非常有助于提升企业的竞争力。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高清英文PDF版。 DSL领域的丰碑之作,软件开发“教父”Martin Fowler历时多年的心血结晶,ThoughtWorks中国翻译。    全面详尽地讲解各种DSL及其构造方式,揭示与编程语言无关的通用原则和模式,阐释如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通。 《领域特定语言》是dsl领域的丰碑之作,由世界级软件开发大师和软件开发“教父”martin fowler历时多年写作而成,thoughtworks中国翻译。全面详尽地讲解了各种dsl及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过dsl有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用dsl提供有效的决策依据和指导方法。    全书共57章,分为六个部分:第一部分介绍了什么是dsl,dsl的用途,如何实现外部ds和内部dsl,如何生成代码,语言工作台的使用方法;第二部分介绍了各种dsl,分别讲述了语义模型、符号表、语境变量、构造型生成器、宏和通知的工作原理和使用场景;第三部分分别揭示分隔符指导翻译、语法指导翻译、bnf、易于正则表达式表的词法分析器、递归下降法词法分析器、解析器组合子、解析器生成器、树的构建、嵌入式语法翻译、内嵌解释器、外加代码等;第四部分介绍了表达式生成器、函数序列、嵌套函数、方法级联、对象范围、闭包、嵌套闭包、标注、解析数操作、类符号表、文本润色、字面量扩展的工作原理和使用场景;第五部分介绍了适应性模型、决策表、依赖网络、产生式规则系统、状态机等计算模型的工作原理和使用场景;第六部分介绍了基于转换器的代码生成、模板化的生成器、嵌入助手、基于模型的代码生成、无视模型的代码生成和代沟等内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值