<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    關于Ruby DSL

    Posted on 2006-07-16 22:41 canonical 閱讀(2064) 評論(2)  編輯  收藏 所屬分類: 軟件開發
    ? 最近ruby語言的流行似乎再次引發了DSL(Domain Specific Language)討論的熱潮。從語法表現形式上看,通過對于ruby語言的深度hack, 充分挖掘ruby語言的某些語法特征,可以使得正常的ruby語句看起來比其他計算機語言更接近于人類的自然語言,某些人因此認定ruby語言是DSL的天然載體。但是在我看來,具體語言的語法表達形式對于DSL的核心價值而言并不是最關鍵的。
    ?? 首先,DSL的核心在于高效的表達語義,而并不在于是否接近自然語言。接近于自然語言并不意味著更加domain, 因為自然語言也是一種通用語言,它未必能夠比采用其他語法形式的語言更加有效的對domain事物進行描述。典型的有數學符號和化學分子式。
    ?? 第二,作為DSL, 緊湊的表達形式是一方面,另一方面是這種表達形式的穩定性,即如何防止人們寫出不符合DSL規范的語句。ruby語言的片斷直接作為DSL無疑是一種naive的解決方案,我們可以輕易寫出大量不同形式的ruby語句,而它們在語義上是等價的(這意味著通過單元測試也無法發現它們的不同),即人們不按照設計的DSL語法書寫,這造成DSL的解體。
    ?? 作為一種DSL構造語言,其核心能力在于如何將second class的domain中的概念(非語言本身內置的概念)封裝到first class的表達形式中。ruby作為一種動態語言,可以更加輕易對于自身meta data進行內省,典型的如ruby中的ActiveRecord設計. 但是在我看來,這種概念提升能力在ruby的語法結構中也是有限的,原因恰在于ruby的語法太多樣化了。實際上,我更加看好xml結構的均一性。

    Feedback

    # re: 關于Ruby DSL  回復  更多評論   

    2006-07-17 10:42 by charon@xxx
    +1

    目前我對這類寄生狀態的DSL不看好,最大的一個原因是定義太方便了,很容易使一些未受過專業訓練的哥們以非常規的方式定義出一些東西來。

    另外,自然語言未必是個好東西,這個玩意兒的二義性太強了。

    # re: 關于Ruby DSL  回復  更多評論   

    2006-07-17 11:23 by Anders小明
    利用如ruby一樣的動態語言實現的dsl是一種偷懶的方式。
    使用xml結構,將帶來表達的困難,需要圖形化的工具協助
    主站蜘蛛池模板: 午夜神器成在线人成在线人免费 | 国产伦一区二区三区免费| 亚洲福利一区二区精品秒拍| 久久99精品视免费看| 亚洲欧洲日产国码无码网站| aa级毛片毛片免费观看久| 亚洲国产精品国自产拍AV| 中文字幕免费在线观看动作大片| 亚洲人成网77777亚洲色| 日本不卡免费新一区二区三区| 久久精品视频亚洲| 最近最新高清免费中文字幕| 亚洲日本国产精华液| 性生交片免费无码看人| 亚洲丁香婷婷综合久久| 亚洲成A人片在线观看无码3D| 五月婷婷免费视频| 亚洲精品成人片在线播放| 84pao强力永久免费高清 | 337p日本欧洲亚洲大胆精品555588 | 亚洲一卡2卡3卡4卡国产网站| 啦啦啦中文在线观看电视剧免费版| 亚洲国产精品美女久久久久| 亚洲国产成人乱码精品女人久久久不卡 | 亚洲成a人片在线网站| 成年女人18级毛片毛片免费| 污网站在线观看免费| 亚洲av无码一区二区三区乱子伦| 中字幕视频在线永久在线观看免费| 亚洲国产精品成人午夜在线观看 | 亚洲国产精品免费视频| 成人免费毛片视频| 一级毛片在播放免费| 亚洲欧洲国产视频| 高清在线亚洲精品国产二区| 无码囯产精品一区二区免费| 亚洲欧美成人一区二区三区| 亚洲热妇无码AV在线播放| 噼里啪啦电影在线观看免费高清 | 亚洲国产精彩中文乱码AV| 99在线视频免费观看视频 |