博碩士論文 107522071 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:18 、訪客IP:18.191.157.186
姓名 簡若宜(Ruo-Yi Jian)  查詢紙本館藏   畢業系所 資訊工程學系
論文名稱 支援模組化規則製作之程式碼轉換工具
(A Source Code Transformation Tool Supporting Modular Rule Creation)
相關論文
★ 條件判斷式事件驅動程式設計之C語言擴充★ 基于小波变换的指纹活度检测,具有聚集 LPQ 和 LBP 特征
★ 應用自動化測試於異質環境機器學習管道之 MLOps 系統★ 設計具有可視化思維工具和程式作為單一步的 輔助學習程式之棋盤式遊戲
★ TOCTOU 漏洞的靜態分析與實作★ 用於繪製風力發電控制邏輯之特定領域語言
★ 在Java程式語言中以雙向結構表達數學公式間關聯之設計與實作★ 基於替代語意的 pandas DataFrame 靜態型別檢查器
★ 自動化時間複雜度分析的設計與實作–從軟體層面評估嵌入式系統的功率消耗★ 以震波層析成像為應用之特定領域語言實作與分析
★ 用特徵選擇減少疲勞偵測腦電圖通道數★ 一個應用紙本運算與數位化於程式設計學習使程序性思維可視化的機制
★ 基於抽象語法樹的陣列形狀錯誤偵測★ 從合作學習角色分工獲得函式程式設計思維學習遞迴程式的機制
★ 基於抽象語法樹的深度複製及彈性別名之所有權系統解決 Java 表示暴露問題★ 基於 Python 型別提示檢查不可變性
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   至系統瀏覽論文 (2025-8-1以後開放)
摘要(中) 模組化為頻繁於程式設計中使用的概念之一,適當使用能夠提升整體程式之可讀性、維護性與重用性。雖模組化已運用至眾多領域中,但依然有些許領域尚未使用此概念,例如程式碼轉換領域即為其中之一。在程式碼轉換領域中,主要可分為基於純文字轉換以及基於程式結構轉換兩類,而兩者皆未提供模組化的規則製作方式以及較為完善的既有規則重用方式。因此在規則製作時,難以直接由規則看出其整體涵義,也無法快速重用既有之轉換規則。為改善此問題,本研究提出ReModuRutt,以純文字轉換為基礎提供模組化之規則製作以及便利的重用既有規則功能,並提供簡單易懂之規則製作介面。經由實驗結果可得知,此工具不管在功能完整度、模組化程度以及更改難易度上皆足夠完整,能確實讓使用者得以更加善用已存在之規則,減少規則在撰寫、擴充、修改與引用上的花費時間,讓使用程式轉換工具時能夠更加簡便。
摘要(英) Modularization is one of the common concepts used in programming. Using modularization properly can improve the readability, maintainability and reusability of program. While modularization has been widely used in various programming fields, there are still have some fields where modularization has not been applied, for example source code transformation. Source code transformation can be mainly divided into text-based and structure-based; however, none of them either support modularization in transformation rule, or provide rule reusing methods. Therefore, when making transformation rule, it is difficult to directly see the meaning from the rule, and difficult to reuse the existing transformation rule. In order to solve this problem, we propose a text-based transformation tool called ReModuRutt, which provides modular rule making and easy-to-understand rule making interface. According to our experimental results, this tool is complete enough in terms of functional integrity, modularity, and ease of change. With this tool, users can make better use of existing rules, which can reduce the time spent on rule design, expansion, modification and reference, and make it easier to use source code transformation tools.
關鍵字(中) ★ 模組化
★ 程式碼轉換
★ 正規表示式
★ 圖形化介面
關鍵字(英) ★ Modularization
★ Code transformation
★ Regular expression
★ Graphical user interface
論文目次 摘要 i
ABSTRACT ii
致謝 iii
目錄 iv
圖目錄 vi
表目錄 x
一、 緒論 1
二、 動機與目的 7
2-1 一般規則製作 9
2-2 修改規則 11
2-3 引用既有規則 13
三、 ReModuRutt 22
3-1 工具概述 23
3-2 功能簡介 29
3-2-1 規則製作 29
3-2-2 分析轉換 33
3-3 模組化規則製作 35
3-3-1 引用既有規則 35
3-3-2 引用已存在區塊 38
3-4 不受語言限制之轉換 38
3-5 易理解規則製作介面 39
四、 實作方法 40
4-1 系統架構 40
4-1-1 PlugInModel 40
4-1-2 Model 41
4-1-3 Tool 45
4-1-4 View 47
4-2 規則處理方式 48
4-2-1 讀取規則處理 48
4-2-2 儲存規則處理 51
4-3 分析轉換方式 52
五、 實驗結果比較 60
5-1 功能比較 60
5-2 模組化比較 64
5-2-1 新增規則 64
5-2-2 修改規則 69
5-2-3 移除規則 71
5-2-4 重用規則 73
5-3 更改難度比較 78
5-3-1 一般規則更改 78
5-3-2 引用規則更改 85
5-4 實際案例 96
六、 相關研究 111
6-1 純文字轉換研究 111
6-2 AST轉換研究 111
6-3 其他轉換研究 112
七、 總結 114
參考文獻 115
附錄一 117
參考文獻 [1] Python Software Foundation (2020). Automated Python 2 to 3 code translation. Retrieved from https://docs.python.org/2/library/2to3.html#using-2to3
[2] Apple Inc (2020). Migrating to Swift 5. Retrieved from
https://swift.org/migration-guide-swift5/
[3] Cordy, J. R., Dean, T. R., Malton, A. J., & Schneider, K. A. (2002). Source transformation in software engineering using the TXL transformation system. Information and Software Technology, 44(13), 827-837.
[4] Groce, A., Holmes, J., Marinov, D., Shi, A., & Zhang, L. (2018, May). An extensible, regular-expression-based tool for multi-language mutant generation. In 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion) (pp. 25-28). IEEE.
[5] Cordy, J. R. (2006). The TXL source transformation language. Science of Computer Programming, 61(3), 190-210.
[6] Klint, P., Van Der Storm, T., & Vinju, J. (2009, September). Rascal: A domain specific language for source code analysis and manipulation. In 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation (pp. 168-177). IEEE.
[7] Yi, Q. (2012). POET: a scripting language for applying parameterized source‐to‐source program transformations. Software: Practice and Experience, 42(6), 675-706.
[8] Takizawa, H., Hirasawa, S., Hayashi, Y., Egawa, R., & Kobayashi, H. (2014, December). Xevolver: An XML-based code translation framework for supporting HPC application migration. In 2014 21st International Conference on High Performance Computing (HiPC) (pp. 1-11). IEEE.
[9] Free Software Foundation (2020). Gawk. Retrieved from
https://www.gnu.org/software/gawk/
[10] Free Software Foundation (2020). Gun Sed. Retrieved from
https://www.gnu.org/software/sed/
[11] Notepad++ (2020). Don Ho. Retrieved from https://notepad-plus-plus.org/
[12] Visual Studio (2020). Microsoft. Retrieved from
https://visualstudio.microsoft.com/zh-hant/
[13] Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. In Pioneers and Their Contributions to Software Engineering (pp. 479-498). Springer, Berlin, Heidelberg.
[14] Geoffrion, A. M. (1988). Reusing structured models via model integration (No. WMSI-WP-362). CALIFORNIA UNIV LOS ANGELES WESTERN MANAGEMENT SCIENCE INST.
[15] Grant Skinner (2020). regexr. Retrieved from https://github.com/gskinner/regexr
[16] Firas Dib (2020). Regex101. Retrieved from
https://github.com/firasdib/Regex101
[17] van Tonder, R., & Le Goues, C. (2019, June). Lightweight multi-language syntax transformation with parser parser combinators. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (pp. 363-378).
[18] Balland, E., Brauner, P., Kopetz, R., Moreau, P. E., & Reilles, A. (2007, June). Tom: Piggybacking rewriting on java. In International Conference on Rewriting Techniques and Applications (pp. 36-47). Springer, Berlin, Heidelberg.
[19] Bravenboer, M., Kalleberg, K. T., Vermaas, R., & Visser, E. (2008). Stratego/XT 0.17. A language and toolset for program transformation. Technical Report Series TUD-SERG-2008-011.
[20] Boshernitsan, M., & Graham, S. L. (2006, May). Interactive transformation of Java programs in Eclipse. In Proceedings of the 28th international conference on Software engineering (pp. 791-794).
[21] Boshernitsan, M. (2001). Harmonia: A flexible framework for constructing interactive language-based programming tools. Computer Science Division, University of California.
[22] Pawlak, R., Monperrus, M., Petitprez, N., Noguera, C., & Seinturier, L. (2016). Spoon: A library for implementing analyses and transformations of java source code. Software: Practice and Experience, 46(9), 1155-1179.
[23] Karaivanov, S., Raychev, V., & Vechev, M. (2014, October). Phrase-based statistical translation of programming languages. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (pp. 173-184).
[24] Karampatsis, R. M. Translating Natural Language into Source Code Via Tree Transduction
[25] Chen, X., Liu, C., & Song, D. (2018). Tree-to-tree neural networks for program translation. In Advances in neural information processing systems (pp. 2547-2557).
指導教授 莊永裕(YungYu Zhuang) 審核日期 2020-7-24
推文 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聯絡  - 隱私權政策聲明