国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
創(chuàng)新工場蔡學(xué)鏞:領(lǐng)域語言的設(shè)計(jì)與實(shí)踐

 【CSDN現(xiàn)場報(bào)道】2010年12月9日,年度收官技術(shù)盛宴SD2.0大會(huì)在上海光大會(huì)展中心國際大酒店隆重開幕。這是自2007年成功舉辦首屆以來,由CSDN和《程序員》雜志主辦的連續(xù)第四屆SD2.0(軟件開發(fā)2.0)大會(huì)。來自IBM、微軟、盛大、FaceBook、阿里巴巴等眾多企業(yè)的技術(shù)領(lǐng)袖全部匯聚,共同剖析當(dāng)前IT技術(shù)發(fā)展大勢,分享在各自領(lǐng)域的技術(shù)成就與成功秘訣。

創(chuàng)新工場首席布道師、軟件架構(gòu)師蔡學(xué)鏞,在工具與語言分論壇做了題為《領(lǐng)域語言(DSL)的設(shè)計(jì)與實(shí)踐》的主題演講。

蔡學(xué)鏞認(rèn)為,整個(gè)編程正在朝著領(lǐng)域語言(DSL,Domain Specific Language)發(fā)展。那么什么是領(lǐng)域,可以理解為特定,特定是專用限定,不可以做別的事情。比如R語言,在統(tǒng)計(jì)領(lǐng)域應(yīng)該比較流行,但是它的功能太強(qiáng)大,它做的不止是統(tǒng)計(jì),所以它不是一個(gè)DSL。

現(xiàn)在我們談的都是別人家的DSL,我們固然可以用別人家的DSL,但是DSL真正價(jià)值是,根據(jù)著自己商務(wù)需求設(shè)計(jì)出自己需要的語言。

那么要如何制作自己的DSL,首先是建造領(lǐng)域模型。哪些領(lǐng)域可以復(fù)用,有哪些方法,都要寫下來。有了領(lǐng)域模型之后,就能簡化DSL的實(shí)現(xiàn),即使脫離DSL也依然有助于編程。你沒有這個(gè)設(shè)計(jì)工具,更好寫代碼,領(lǐng)域模型的存在價(jià)值就是它可以幫助你寫代碼,即時(shí)沒有DSL的情況之下。另外,DSL最好具有跨越領(lǐng)域模型限制的能力。

接下來是定義DSL。定義DSL需要領(lǐng)域?qū)<液途幊虒<乙煌M(jìn)行。DSL的定義可能會(huì)受到領(lǐng)域模型的影響,它是依附于領(lǐng)域模型的。DSL的實(shí)踐方式可能會(huì)影響能用的類型,所以務(wù)必找出領(lǐng)域的關(guān)健詞,比如說財(cái)務(wù)就有本金這些關(guān)鍵詞。定義語法,這些關(guān)鍵詞之間怎么組合,就是它的語法,把這個(gè)規(guī)則訂出來,當(dāng)這些都完成了,語言就訂立出來了。不要把這個(gè)想的很困難,一般情況下跟一個(gè)編程語言是不一樣的,其難度非常低。

設(shè)定出來自己領(lǐng)域模型,DSL要怎么實(shí)現(xiàn)它呢?蔡學(xué)鏞認(rèn)為可以有五種方式:

一、自己寫Parser,但通常比較難,好處就是可以做任何事情不受限制。

二、使用XML,就無須寫Parser,不過缺點(diǎn)也很明顯,限制很大,要求結(jié)構(gòu),數(shù)據(jù)變化大。

三、使用語言自己的DSL機(jī)制,但需要語言本身的支持。

四、使用ANTLR等code Gen工具。它可以幫你產(chǎn)生Java的代碼,或者產(chǎn)生其他語言的代碼。

五、使用MPS專門為DSL設(shè)計(jì)出來的開發(fā)平臺(tái)。通過它不僅可以輕易的把DSL開發(fā)出來,甚至連文字編輯器都有了。

最后蔡學(xué)鏞總結(jié)到,領(lǐng)域語言使用范圍很廣,領(lǐng)域語言很實(shí)用且優(yōu)點(diǎn)顯著。領(lǐng)域框架的建立,對于領(lǐng)域語言相當(dāng)重要。建立領(lǐng)域框架之后,即使不使用DSL,仍會(huì)為系統(tǒng)開發(fā)帶來相當(dāng)大的好處。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DSL領(lǐng)域特定語言初探
編程語言的發(fā)展趨勢及未來方向(2)
Ruby高手點(diǎn)評Scala編程語言十大絕招
從零到深度學(xué)習(xí)大師:成為深度學(xué)習(xí)工程師的十個(gè)步驟
微軟RobustFill:無需編程語言,神經(jīng)網(wǎng)絡(luò)自動(dòng)生成程序
在CLR之上的構(gòu)建領(lǐng)域特定語言(轉(zhuǎn) InfoQ)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服