| 研究生: |
劉冠尚 Kuan-Shang Liu |
|---|---|
| 論文名稱: |
流程圖式特定領域語言之設計與實作 The Design and Implementation of a Domain-Specific Language in Flowchart Style |
| 指導教授: |
莊永裕
Yung-Yu Zhuang |
| 口試委員: | |
| 學位類別: |
碩士 Master |
| 系所名稱: |
資訊電機學院 - 軟體工程研究所 Graduate Institute of Software Engineering |
| 論文出版年: | 2019 |
| 畢業學年度: | 107 |
| 語文別: | 中文 |
| 論文頁數: | 57 |
| 中文關鍵詞: | 特定領域語言 、流程圖 |
| 外文關鍵詞: | Domain-Specific Language, DSL framework, flowchart |
| 相關次數: | 點閱:11 下載:0 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
近來許多特定領域均相當依賴程式撰寫,用於實驗模擬等。但泛用程式語言對非程式設計專家來說顯得過於複雜,且未必能適切表達特定領域裡的程式。特定領域語言的提出不但可簡化學習曲線,也可增加特定領域程式的可讀性。尤其是流程圖的方式,可讓非專業程式設計者簡易地撰寫程式。本研究設計一套流程圖式特定領域語言,實作並探討其優缺點。
流程圖DSL 沒有複雜的應用,僅以流程圖得要素Start、EndProcess、Decision、及而外建構的Loop,五種要素,組合成一個流程圖程式,相信流程圖在各領域是廣被用於表達其領域的設計或系統流程,MasonPy 撰寫DSL 時也沒有複雜的元件、指令,是個能輕易上手的DSL。MasonPy 提供基本的母模板,可提特定領域專家修改、擴充或代
換DSLs,DSL developer 能夠依母模板建構自定義的功能塊,設計其領域所需要的資料處理、科學運算、演算法設計……等等,將其加以設計包成功能塊來提供End-User 快速於流程圖上進行流程拼接使用,並附帶有MasonPy 專用的Debugger 協助提示錯誤訊息。
In recent years, there have been many domains highly dependent on programming. But general-purpose language is too complex for non-programming experts, and it can’t present programs in domain appropriately sometimes. Appearance of domain-specific language not only simplify the learning curve, but also increase readability in programs. Especially flow chart-like DSL, can make those who are not professional programmers to write programs easily. Our research made a flow chart-like DSL and compare with general-purpose language.
The DSL, <MasonPy>, doesn’t have complicated usage and only made by five elements(Start, End, Process, Decision and Loop). Users use these five element to build a flow chart. I believe flow chart is used widely in many field’s design or system flow. <MasonPy> offers a basic class for domain experts to modify, expend or replace DSLs. Domain experts can construct their own function blocks, which can design their domain’s data processing, scientific operation, algorithm designing, etc. End-users can place those function blocks to become a flow chart. <MasonPy> also have a Debugger to show error messages.
[1] Book: Martin Fowler - Domain-Specific Languages (1st Edition, Kindle Edition)
[2] Marjan Mernik, Jan Heering, and Anthony M. Sloane - When and how to develop domain-specific languages .Journal:ACM Computing Surveys (CSUR) Surveys Homepage archive Volume 37 Issue 4, December 2005
[3] Paul Hudak - Modular Domain Specific Languages and Tools. Published in: Proceedings.Fifth International Conference on Software Reuse (Cat. No.98TB100203)
[4]Ankica Barišić, Vasco Amaral, Miguel Goulão, and Bruno Barroca - Evaluating the Usability of Domain Specific Languages
[5] Tobias Roehm, Two User Perspectives in Program Comprehension - End-Users and Developer Users. 2015 IEEE 23rd International Conference on Program Comprehension
[6] Herbert Prähofer, Dominik Hurnaus, and Hanspeter Mössenböck - Building End-User Programming Systems Based on a Domain-Specific Language.
[7]Book: Glover, J. Duncan/ Overbye, Thomas J./ Sarma, and Mulukutla S - Power System Analysis & Design
[8] MathWorks, MATLAB官網規格書: https://www.mathworks.com/help/pdf_doc/matlab/rn.pdf
[9] MathWorks, Simulink官網規格書: https://www.mathworks.com/help/pdf_doc/simulink/sl_gs.pdf
[10] figure:Simulink https://www.youtube.com/watch?v=2J-W2PABUuA
[11] F. Milano - PSAT, Matlab-Based Power System Analysis Toolbox.
[12]MathWorks官網, https://www.mathworks.com/help/simulink/custom-block-basics.html?s_tid=CRUX_lftnav
[13]MathWorks官網: Design and Create a Custom Block, https://www.mathworks.com/help/simulink/ug/tutorial-creating-a-custom-block.html#bq89h57
[14] MathWorks官網, https://www.mathworks.com/help/simulink/slref/matlabfunction.html
[15] NATIONAL INSTRUMENT, LabVIEW官網規格書: http://www.ni.com/zh-tw/shop/labview/how-do-i-use-labview-to-teach-engineering-students.html
[16] figure: Temperature Conversion in LabVIEW: https://www.theengineeringprojects.com/2017/03/temperature-conversion-in-labview.html
[17] S. Souag and F. Z. Gherbi-A New Software for Power Flow Solution Computing Using LabVIEW. 2013 5th International Conference on Modeling, Simulation and Applied Optimization (ICMSAO)
[18] NATIONAL INSTRUMENT官網:Formula node, http://www.ni.com/tutorial/7572/en/
[19] NATIONAL INSTRUMENT官網:SubVIs, http://www.ni.com/tutorial/7593/en/
[20] NATIONAL INSTRUMENT官網, https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9QnSAK
[21] YungYu Zhuang and Jui-Hsiang Kao-A Framework for Programming in Engineering Domain. In proceedings of the 9th International Congress on Engineering and Information (ICEAI 2019), Osaka, Japan, May 7-9, 2019.
[22] Konrad Hinsen - Domain-Specific Languages in Scientific Computing
[23] Python官網: Errors and Exceptions, https://docs.python.org/3/tutorial/errors.html