博碩士論文 106525011 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:4 、訪客IP:18.217.6.114
姓名 劉冠尚(Kuan-Shang Liu)  查詢紙本館藏   畢業系所 軟體工程研究所
論文名稱 流程圖式特定領域語言之設計與實作
(The Design and Implementation of a Domain-Specific Language in Flowchart Style)
相關論文
★ 條件判斷式事件驅動程式設計之C語言擴充★ 基于小波变换的指纹活度检测,具有聚集 LPQ 和 LBP 特征
★ 應用自動化測試於異質環境機器學習管道之 MLOps 系統★ 以演算法程式設計競賽試題為例使用Big-O AST靜態分析函式時間複雜度
★ 設計具有可視化思維工具和程式作為單一步的 輔助學習程式之棋盤式遊戲★ TOCTOU 漏洞的靜態分析與實作
★ 用於繪製風力發電控制邏輯之特定領域語言★ 在Java程式語言中以雙向結構表達數學公式間關聯之設計與實作
★ 支援模組化規則製作之程式碼轉換工具★ 基於替代語意的 pandas DataFrame 靜態型別檢查器
★ 自動化時間複雜度分析的設計與實作–從軟體層面評估嵌入式系統的功率消耗★ 以震波層析成像為應用之特定領域語言實作與分析
★ 用特徵選擇減少疲勞偵測腦電圖通道數★ 一個應用紙本運算與數位化於程式設計學習使程序性思維可視化的機制
★ 基於抽象語法樹的陣列形狀錯誤偵測★ 從合作學習角色分工獲得函式程式設計思維學習遞迴程式的機制
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   至系統瀏覽論文 (2024-6-25以後開放)
摘要(中) 近來許多特定領域均相當依賴程式撰寫,用於實驗模擬等。但泛用程式語言對非程式設計專家來說顯得過於複雜,且未必能適切表達特定領域裡的程式。特定領域語言的提出不但可簡化學習曲線,也可增加特定領域程式的可讀性。尤其是流程圖的方式,可讓非專業程式設計者簡易地撰寫程式。本研究設計一套流程圖式特定領域語言,實作並探討其優缺點。
流程圖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.
關鍵字(中) ★ 特定領域語言
★ 流程圖
關鍵字(英) ★ Domain-Specific Language
★ DSL
★ DSL framework
★ flowchart
論文目次 中文提要 ……………………………………………………………… i
英文提要 ……………………………………………………………… ii
誌謝 ……………………………………………………………… iii
目錄 ……………………………………………………………… iv
圖目錄 ……………………………………………………………… v
表目錄 ……………………………………………………………… vi
一、 緒論………………………………………………………… 01
1.1 DSL的需求…………………………………………………… 01
1.2 何謂DSL?……………………………………………………… 02
1.3 DSL設計問題………………………………………………… 03
1.4 朝向連End-User都能輕易修改的DSL……………………… 04
二、 研究動機……………………………………………………… 05
2.1 工程應用與DSL…………………………………… 05
2.2 常見的工程域軟體Simulink……………………………… 08
2.2.1 Simulink的應用…………………………………………… 09
2.2.2 Simulink的應用問題…………………………………… 10
2.3 常見的工程域軟體LabVIEW………………………………… 11
2.3.1 LabVIEW的應用……………………………………………… 12
2.3.2 LabVIEW的應用問題………………………………………… 14
三、 研究提案……………………………………………………… 17
3.1 流程圖式的DSL……………………………………… 17
3.2 提供可自定義的功能塊……………………………………… 18
3.3 流程運算結果圖表化………………………………………… 19
3.4 Debugger的需求………………………………………… 19
3.5 流程圖式的DSL提供End-User的功能……………………… 20
四、 實作……………………………………………… 21
4.1 程式架構………………………………………………… 21
4.2 MasonPy內建提供的DSL功能塊……………………………… 23
4.2.1 各功能塊功能介紹………………………………………… 24
4.2.2 功能塊間資料傳遞………………………………………… 26
4.2.3 DSL指令使用簡介…………………………………………… 26
4.3 可自定義的功能塊撰寫DSL………………………………… 29
4.3.1 如何撰寫功能塊的DSL……………………………………… 30
4.3.2 如何匯入功能塊……………………………………… 34
4.4 Debugger的設計……………………………………… 35
五、 評價………………………………………………… 38
5.1 MasonPy與GUI………………………………………… 38
5.2 MasonPy與流程圖式DSL………………………………… 41
5.3 MasonPy的DSL開發………………………………… 42
5.4 MasonPy的Debugger………………………………… 43
六、 結論與未來展望…………………………………………… 44
6.1 結論…………………………………………………… 44
6.2 未來展望…………………………………………………… 44
參考資料 ……………………………………………………………… 45
參考文獻 [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
指導教授 莊永裕(Yung-Yu Zhuang) 審核日期 2019-6-27
推文 facebook   plurk   twitter   funp   google   live   udn   HD   myshare   reddit   netvibes   friend   youpush   delicious   baidu   
網路書籤 Google bookmarks   del.icio.us   hemidemi   myshare   

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明