[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. 筆者心智圖手稿