Posted on 2006-03-25 11:24
canonical 閱讀(870)
評論(1) 編輯 收藏 所屬分類:
設計理論
??? 關于DSL(Domain Specific Language)的確切含義紛爭很多,但是其核心觀念還是很明確的。DSL的關鍵是使用領域特定的概念,即它的概念系統中具有一些非General Purpose的基元。但是這種所謂非General Purpose僅是就詮釋層面而言,它所指的并不是DSL對應的形式系統。例如,在物理學中聲波(sonic wave)無疑是對原子系統的集團運動模式的一種抽象,基于wave概念的聲波方程可以看作是對應于原子系統的一個特定領域的DSL。從聲波系統是無法逆推出原子系統的所有行為的,但是理論上量子力學在形式上同樣可以采用wave描述,而它卻可以構成對原子系統的詮釋。
???
??? DSL因為基于Domain概念,可以提高理解性是應該的,但是現實中的大多數DSL仍然存在大量技術性的形式要求,它們是很難讓非計算機領域的業務人員掌握的。期待業務專家使用DSL在目前多半只是一種不切實際的幻想。但是如果認為DSL就是更甜的代碼也并不適當。搜索google的時候我們使用的查詢字符串也是一種domain specific language, 很多人都會使用""和-等語法結構。
??? DSL應該關注用的層面(what), 而不是how-to,how-to是DSL的實現問題。從what到how to是我們希望通過DSL解析器屏蔽起來的內容,而不是DSL本身需要表達的內容。