[DSL] Domain-Specific Languages 讀書心得 (1) 入門

[DSL] Domain-Specific Languages 讀書心得 (1) 入門

書目: Domain-Specific Languages

Martin Fowler 著

 

1. 語意模型(後續簡寫為SM)分為 2 個部份 (關注點分離)

    (1) 語法 (syntax) - 正確的表達式, 即外觀看起來如何

    (2) 語意 (semantics) - 代表著什麼, 或可以用來做什麼, 即內涵的意義

 

2. DSL 與SM的關係?

    DSL是SM的門面, 即Facade, 是不需要編譯, 且明顯閱讀性高的代碼.

 

3. SM 可以用什麼來表示?

    (1) UML – State Diagram

    (2) UML – Class Diagram*

 

4. 發展DSL應用程式的最佳流程是?

    建立SM -> 建立DSL -> 操作它

 

5. DSL 必然會有Code Generation的過程, 而後者的風格分為2種

    (1) 建立一次的Template後, 必須手動調整Code (不建議)

    (2) 不需手動調整Code

 

6. 實現的工具(語言工作台) 仍在進化中, 目前有2大走向:

    (1) 可視化 Virtualization (現貨可參考 MetaEdit)

    (2) 語法指導 Code assit (現貨可參考 Xtext)

 

7. 語言工作台是為SM而生或是DSL?

    語言工作台Language workbench是因為SM而設計, DSL是它的產出.

 

8. 筆者心智圖手稿

DSC_1241