新聞中心
編程語(yǔ)言是程序員每天都要使用的工具。深刻地理解這個(gè)工具,對(duì)程序員來(lái)說(shuō)非常重要。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、雅安服務(wù)器托管、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、遂溪網(wǎng)站維護(hù)、網(wǎng)站推廣。
一般來(lái)說(shuō),重新編寫(xiě)一個(gè)與已有程序相似的程序會(huì)被說(shuō)成是“重復(fù)發(fā)明輪子”,這在行業(yè)內(nèi)是不被認(rèn)同的。但本書(shū)中想要實(shí)現(xiàn)的,偏偏是在眾多語(yǔ)言存在的前提下再制作一門(mén)新的語(yǔ)言,正是“重復(fù)發(fā)明輪子”。這是深刻理解編程語(yǔ)言的***途徑(缺點(diǎn)是要花很多時(shí)間)。
2. 能制作領(lǐng)域?qū)S谜Z(yǔ)言
比如在Unix的世界中,有sed和awk兩種歷史悠久的專(zhuān)為文本處理定制的語(yǔ)言(后來(lái)在此方向上發(fā)展出了Perl語(yǔ)言)。PHP則是專(zhuān)門(mén)面向 Web程序開(kāi)發(fā)的語(yǔ)言。如果掌握了制作編程語(yǔ)言的技術(shù),就可以在必要的情況下制作出領(lǐng)域?qū)S谜Z(yǔ)言(DSL,Domain Specific Language)。
領(lǐng)域?qū)S谜Z(yǔ)言不一定會(huì)像Perl與PHP那么復(fù)雜,在很多情況下,如果能書(shū)寫(xiě)條件分支或者簡(jiǎn)單語(yǔ)句的話(huà)會(huì)方便許多,這也可以看作是一種專(zhuān)用領(lǐng)域。
比如在業(yè)務(wù)流程處理等軟件中,很多時(shí)候?yàn)榱饲袚Q測(cè)試環(huán)境與生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù),需要重寫(xiě)配置文件,而這一操作經(jīng)常會(huì)引發(fā)問(wèn)題(比如由于版本升級(jí)需要增加配置文件項(xiàng)目,此時(shí)必須與舊版本配置合并)。這時(shí)候我們可能就會(huì)想,如果能直接在配置文件中寫(xiě)if語(yǔ)句將其按域名分開(kāi)就好了。
除此以外,我們?cè)谔顚?xiě)數(shù)據(jù)時(shí)可能希望能支持類(lèi)似Excel的簡(jiǎn)單計(jì)算公式,在玩游戲時(shí)希望能把游戲中的臺(tái)詞導(dǎo)出到一個(gè)外部文件中,等等。這些都可以看作專(zhuān)用領(lǐng)域并制作對(duì)應(yīng)的DSL。
3. 可以用編程語(yǔ)言擴(kuò)展應(yīng)用程序
將以上兩方面的考量進(jìn)一步延伸,我們就會(huì)得到以通用語(yǔ)言擴(kuò)展某個(gè)應(yīng)用程序的構(gòu)想。Emacs這個(gè)編輯器就內(nèi)置了Emacs Lisp這種Lisp方言,從而為Emacs的自定義提供了無(wú)限的可能性。同理,Microsoft Office也可以使用VBA進(jìn)行擴(kuò)展。
對(duì)于這類(lèi)應(yīng)用程序擴(kuò)展語(yǔ)言,當(dāng)然完全可以使用某種已有的編程語(yǔ)言(Lua等就在向這個(gè)方向發(fā)展),也可以在編寫(xiě)應(yīng)用程序時(shí)從底層到擴(kuò)展全部自己實(shí)現(xiàn)。這樣就無(wú)需擔(dān)心使用其他編程語(yǔ)言在版本升級(jí)時(shí)引起的兼容性問(wèn)題了。
4. 說(shuō)不定還會(huì)變成名人
如果自制的編程語(yǔ)言能在世界范圍內(nèi)得到廣泛使用,那就太棒了。比如Ruby之父松本行弘先生就是世界名人。
不過(guò)坦白講,通過(guò)自制編程語(yǔ)言來(lái)獲得成功實(shí)在是太難了。即便語(yǔ)言被創(chuàng)造出來(lái),如果沒(méi)人用的話(huà)就不會(huì)產(chǎn)生相應(yīng)的軟件,這樣就更不會(huì)有人用了。況且,即 便真的因?yàn)榘l(fā)明了新的語(yǔ)言而變成了名人,通過(guò)這個(gè)賺到錢(qián)的希望也十分渺茫啊。其實(shí)我自己最近寫(xiě)的語(yǔ)法處理器都是免費(fèi)發(fā)布的(不這樣的話(huà),語(yǔ)言沒(méi)法普及 呀)。
5. 自制編程語(yǔ)言非常有趣
啰嗦了這么多,說(shuō)到底其實(shí)是因?yàn)樽灾凭幊陶Z(yǔ)言非常有趣。
自制一門(mén)編程語(yǔ)言確實(shí)是一件非常有意思的事。有人說(shuō)過(guò)“想寫(xiě)出***程序的程序員,最終都去寫(xiě)操作系統(tǒng)或者編程語(yǔ)言了”,你可以通過(guò)自制編程語(yǔ)言感受到接觸最核心技術(shù)的樂(lè)趣。
希望更多的人投入到自制編程語(yǔ)言中來(lái)。
文章標(biāo)題:自制編程語(yǔ)言有什么好處?
網(wǎng)站鏈接:http://m.fisionsoft.com.cn/article/djpeeoc.html


咨詢(xún)
建站咨詢(xún)
