中软首页
中软国际教育科技集团Education and Technology Group of Chinasofti
●  教育部授予:“软件工程专业大学生实习实训基地”资质
●  商务部授予:“中国服务外包示范培训中心”资质
●  工信部授予:国家信息技术紧缺人才培养工程“521计划”资格
●  获得腾讯授予:中国IT教育十大影响力品牌

≡ 技术知识库
当前位置:网站首页>技术知识库>>文章内容
自制编程语言有什么好处?
作者:中软卓越   来源:中软卓越    时间:2015-08-13 13:36:43    字体:[大] [中] [小]
 

1.编程语言是程序员每天都要使用的工具。深刻地理解这个工具,对程序员来说非常重要。

        一般来说,重新编写一个与已有程序相似的程序会被说成是“重复发明轮子”,这在行业内是不被认同的。但本书中想要实现的,偏偏是在众多语言存在的前提下再制作一门新的语言,正是“重复发明轮子”。这是深刻理解编程语言的最佳途径(缺点是要花很多时间)。

2. 能制作领域专用语言

        比如在Unix的世界中,有sed和awk两种历史悠久的专为文本处理定制的语言(后来在此方向上发展出了Perl语言)。PHP则是专门面向 Web程序开发的语言。如果掌握了制作编程语言的技术,就可以在必要的情况下制作出领域专用语言(DSL,Domain Specific Language)。

        领域专用语言不一定会像Perl与PHP那么复杂,在很多情况下,如果能书写条件分支或者简单语句的话会方便许多,这也可以看作是一种专用领域。

        比如在业务流程处理等软件中,很多时候为了切换测试环境与生产环境的数据库,需要重写配置文件,而这一操作经常会引发问题(比如由于版本升级需要增加配置文件项目,此时必须与旧版本配置合并)。这时候我们可能就会想,如果能直接在配置文件中写if语句将其按域名分开就好了。

        除此以外,我们在填写数据时可能希望能支持类似Excel的简单计算公式,在玩游戏时希望能把游戏中的台词导出到一个外部文件中,等等。这些都可以看作专用领域并制作对应的DSL。

3. 可以用编程语言扩展应用程序

        将以上两方面的考量进一步延伸,我们就会得到以通用语言扩展某个应用程序的构想。Emacs这个编辑器就内置了Emacs Lisp这种Lisp方言,从而为Emacs的自定义提供了无限的可能性。同理,Microsoft Office也可以使用VBA进行扩展。

        对于这类应用程序扩展语言,当然完全可以使用某种已有的编程语言(Lua等就在向这个方向发展),也可以在编写应用程序时从底层到扩展全部自己实现。这样就无需担心使用其他编程语言在版本升级时引起的兼容性问题了。

4. 说不定还会变成名人

        如果自制的编程语言能在世界范围内得到广泛使用,那就太棒了。比如Ruby之父松本行弘先生就是世界名人。

        不过坦白讲,通过自制编程语言来获得成功实在是太难了。即便语言被创造出来,如果没人用的话就不会产生相应的软件,这样就更不会有人用了。况且,即 便真的因为发明了新的语言而变成了名人,通过这个赚到钱的希望也十分渺茫啊。其实我自己最近写的语法处理器都是免费发布的(不这样的话,语言没法普及 呀)。

5. 自制编程语言非常有趣

       啰嗦了这么多,说到底其实是因为自制编程语言非常有趣。

       自制一门编程语言确实是一件非常有意思的事。有人说过“想写出终极程序的程序员,最终都去写操作系统或者编程语言了”,你可以通过自制编程语言感受到接触最核心技术的乐趣。

       希望更多的人投入到自制编程语言中来。

 

中软国际教育科技微网页二维码
版权所有 © 2008-2014 中软国际教育科技集团    京ICP备09078625号-2   京公安备11010802014778号    隐私声明 | 联系我们