dc.contributor.advisor | 陳正佳 | zh_TW |
dc.contributor.advisor | Chen, Cheng Chia | en_US |
dc.contributor.author (作者) | 詹亞騰 | zh_TW |
dc.contributor.author (作者) | Chan, Ya Teng | en_US |
dc.creator (作者) | 詹亞騰 | zh_TW |
dc.creator (作者) | Chan, Ya Teng | en_US |
dc.date (日期) | 2008 | en_US |
dc.date.accessioned | 17-九月-2009 14:04:07 (UTC+8) | - |
dc.date.available | 17-九月-2009 14:04:07 (UTC+8) | - |
dc.date.issued (上傳時間) | 17-九月-2009 14:04:07 (UTC+8) | - |
dc.identifier (其他 識別碼) | G0095753003 | en_US |
dc.identifier.uri (URI) | https://nccur.lib.nccu.edu.tw/handle/140.119/32691 | - |
dc.description (描述) | 碩士 | zh_TW |
dc.description (描述) | 國立政治大學 | zh_TW |
dc.description (描述) | 資訊科學學系 | zh_TW |
dc.description (描述) | 95753003 | zh_TW |
dc.description (描述) | 97 | zh_TW |
dc.description.abstract (摘要) | 近年來越來越多資訊應用領域,開始採用領域特定語言(Domain Specific Language)以表達並解決其領域問題。然而這些特定領域語言多數卻缺乏可大大提升生產力的高品質編輯輔助工具。其主因乃因為從頭開發一套高品質編輯輔助工具所費不貲,然這些特定領域語言普及程度卻遠不如一般通用語言,是以缺乏誘因驅使軟體商開發相關工具。為能快速開發輔助工具,現今的工具開發平台如Eclipse、IDEA,以及NetBeans等,均提供整合開發環境(IDE)的發展支援,以利開發者在平台上快速擴增新語言之編輯環境。即使如此,要發展一套IDE,開發者不僅需深入熟悉所用平台,而且仍需繁瑣與長時間之開發過程。基於此,為求更簡化IDE開發過程,本研究嘗試增強、重構先前開發之雛型系統EGOE【9】,發展出一套遵循模型驅動架構(MDA)之高品質語言編輯環境生成系統:EGOE II。經由此系統的輔助,IDE開發者僅需提供程式語言文法定義(Grammar)及IDE輔助機制客制化資訊,即能套用系統內部的模型轉換程式及程式樣板(Templates),自動生成以Eclipse為平台的高效能、高品質,且提供豐富編輯輔助的程式語言IDE。 | zh_TW |
dc.description.abstract (摘要) | In recent years more and more fields of applications began to use DSLs(Domain Specific Language) to solve their problems. However, most of these languages were created without accompanying high-quality language specific editors(LSE) to help increase the productivity of the language. The reason for the lack of such tools is mostly economic consideration: because of the very high cost of developing a LSE from scratch, it is not worthwhile to invest a LSE on a less frequently used language. To avoid developing an LSE from scratch, however, most present tool platforms such as Eclipse, IDEA or NetBeans have offered required editor frameworks and APIs to help developers to be able to build LSEs on these platform more quickly and easily. Even so, however, it is still thought hard to develop a LSE by way of platform support since developers need a long and steep learning before they can get adept at a platform and, moreover, the process of developing a LSE remains long, tedious and error-prone. Accordingly, to enable even quicker development of LSEs, we proposed and have developed in this paper a high quality editing environment generating system called EGOE II, which follows the MDA approach and is the refactoring and enhancement of our previous prototype EGOE system. With EGOE II, the developer need only offer an editor-specific specification of the target language, which includes the grammar and editor-related customization informations; he can then apply to it the model translator and program templates provided by the system to automatically produce a high-quality editor on Eclipse platform for the target language. | en_US |
dc.description.tableofcontents | 第一章 序論 11.1 研究動機與目的 11.2 實現策略 21.3 論文貢獻與特色 31.4 論文章節架構 5第二章 相關研究探討 72.1 ECLIPSE 開發平台 72.1.1 Eclipse簡介 72.1.2 Eclipse IDE開發架構 82.2 相關工具簡介 102.2.1 EMF(Eclipse Modeling Framework) 102.2.2 Antlr(ANother Tool for Language Recognition) 112.3 現代化程式語言文字編輯器應具備之能力 132.4 MDA(MODEL-DRIVEN ARCHITECTURE)概念 162.5 相似系統的分析與簡介 172.5.1 Eclipse IMP(IDE Meta-tooling Platform) 182.5.2 SmartTools 192.5.3 DLTK(Dynamic Languages Toolkit) 232.5.4 oAW xText 262.5.5 ASF+SDF Meta-Environment 272.6 相似系統的比較 28第三章 系統架構 313.1 IDE生成架構 313.2 系統輸入模型 333.2.1 標的語言抽象語法(Abstract Syntax) 333.2.2 標的語言具體語法(Concrete Syntax) 373.2.3 IDE各項輔助機制的客制化資訊 433.3 系統生成之標的語言IDE 45第四章 雛形系統 484.1 雛型系統簡介 484.2 在雛形系統的基礎上建構本研究目標之實作系統 50第五章 修補暨改善雛型系統生成之IDE提供的輔助能力 525.1 改良多頁編輯器之程式儲存機制 525.2 改進醒目提示(SYNTAX HIGHLIGHT)輔助機制之實現方式 545.3 改善以XSLT處理器達成之程式碼排版效果 575.4 建構結構化與純文字編輯頁面間之高效率即時同步機制 585.5 解決因編輯頁面間同步而導致程式碼編輯資訊遺失的問題 61第六章 擴增系統生成之IDE可提供的輔助機制 636.1 程式碼摺疊(FOLDING)輔助機制 636.2 程式碼語法錯誤標記(MARKER)輔助機制 666.3 程式碼自動完成(CODE COMPLETION)輔助機制 676.4 程式碼格式器(CODE FORMATTER)輔助機制 736.5 程式範例新增精靈(NEW TEMPLATE WIZARD)輔助機制 796.6 型態宣告及引用控管機制 826.6.1 型態宣告和引用之間的超連結輔助機制 846.6.2 醒目顯示特定型態宣告及其引用輔助機制 866.6.3 內容輔助(Content Assistant)機制 87第七章 其他相關改進及系統實例 907.1 開發平台與採用工具的版本更新 907.2 改善系統安裝過程 937.3 改善系統運行方式 947.4 提供屬性設定頁面輔助設置客制化文件 967.5 ABSYNT及COSYNT語言實例 99第八章 結論與未來研究方向 1058.1 結論 1058.2 未來研究方向 1068.2.1 提供浮動說明(Text Hover)輔助機制及相關輔助視圖 1068.2.2 提供簡化客制化描述文件設計過程之機制 1078.2.3 其他可擴展方向 107參考文獻 109附錄A TINY語言語法定義及輔助機制客制化文件 112附錄B ABSYNT語言語法定義及輔助機制客制化文件 118附錄C COSYNT語言語法定義及輔助機制客制化文件 125 | zh_TW |
dc.format.extent | 101433 bytes | - |
dc.format.extent | 126670 bytes | - |
dc.format.extent | 122481 bytes | - |
dc.format.extent | 230693 bytes | - |
dc.format.extent | 258269 bytes | - |
dc.format.extent | 588628 bytes | - |
dc.format.extent | 329998 bytes | - |
dc.format.extent | 286944 bytes | - |
dc.format.extent | 501048 bytes | - |
dc.format.extent | 859709 bytes | - |
dc.format.extent | 912695 bytes | - |
dc.format.extent | 251305 bytes | - |
dc.format.extent | 249271 bytes | - |
dc.format.extent | 290060 bytes | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.format.mimetype | application/pdf | - |
dc.language.iso | en_US | - |
dc.source.uri (資料來源) | http://thesis.lib.nccu.edu.tw/record/#G0095753003 | en_US |
dc.subject (關鍵詞) | Eclipse平台 | zh_TW |
dc.subject (關鍵詞) | 模型驅動技術 | zh_TW |
dc.subject (關鍵詞) | 整合式開發環境 | zh_TW |
dc.subject (關鍵詞) | Eclipse Platform | en_US |
dc.subject (關鍵詞) | Model-Driven Technologies | en_US |
dc.subject (關鍵詞) | Integrated Develop Environment(IDE) | en_US |
dc.title (題名) | 以模型導向技術發展的一套高質語言編輯環境生成系統 | zh_TW |
dc.title (題名) | The Design of a High Quality Editing Environment Generating System Based on Model-Driven Technologies | en_US |
dc.type (資料類型) | thesis | en |
dc.relation.reference (參考文獻) | 【1】 J.A. Bergstra, and P. Klint, ”The discrete time Toolbus - A software coordination architecture,” Science of Computer Programming, vol. 31, pp. 205-229, 1998. | zh_TW |
dc.relation.reference (參考文獻) | 【2】 M.G.J van den Brand, Bas Cornelissen, P.A. Olivier, and J.J Vinju, “TIDE: a generic debugging framewor,” Language Design Tools and Applications, 2005. | zh_TW |
dc.relation.reference (參考文獻) | 【3】 M.G.J. van den Brand, A. van Deursen, P. Klint, S. Klusener, and E.A. van der Meulen, “Industrial Applications of ASF+SDF,” Algebraic Methodology and Software Technology, pp. 9-18, 1996. | zh_TW |
dc.relation.reference (參考文獻) | 【4】 M.G.J. van den Brand, H.A. de Jong, P. Klint, and P.A. Olivier, “Efficient Annotated Terms,” Software - Practice & Experience, vol. 30, pp. 259-291, 2000a. | zh_TW |
dc.relation.reference (參考文獻) | 【5】 M.G.J. van den Brand, P. Klint, and P.A. Olivier, “Compilation and Memory Management for ASF+SDF,” Compiler Construction, pp. 198-213, 1999. | zh_TW |
dc.relation.reference (參考文獻) | 【6】 M.G.J. van den Brand, P.E. Moreau, and J.J. Vinju, “A generator of efficient strongly typed abstract syntax trees in Java,” Technical report, SEN-E0306, 2003a. | zh_TW |
dc.relation.reference (參考文獻) | 【7】 Frank Budinsky, David Steinberg, Ed Merks, Raymond Ellersick, and Timo thy J. | zh_TW |
dc.relation.reference (參考文獻) | Grose, “Eclipse Modeling Framework: A Developer’s Guide,” pp. 15-17, Addison Wesley Pub. Co., 2003. | zh_TW |
dc.relation.reference (參考文獻) | 【8】 Philippe Charles, Julian Dolby, Robert M. Fuhrer, Stanley M. Sutton, and Mandana Vaziri, “SAFARI: A Meta-Tooling Platform for Creating Language-Specific IDEs,” Companion to the 21st ACM SIGPLAN conference on OOPSLA, 2006. | zh_TW |
dc.relation.reference (參考文獻) | 【9】 Cheng-Chia Chen, “EGOE: a Generating System of Multi-View Editing Environments on Eclipse Platform,” In Proceedings of the ICS Conference, 2006. | zh_TW |
dc.relation.reference (參考文獻) | 【10】 S. Efftinge, and M. Völter, “oAW xText: A framework for textual DSLs,” 2006. | zh_TW |
dc.relation.reference (參考文獻) | 【11】 H.A. de Jong, and P.A Olivier, “Generation of abstract programming interfaces from syntax definitions,” Journal of Logic and Algebraic Programming, 2003. | zh_TW |
dc.relation.reference (參考文獻) | 【12】 J. B. Rainsberger, “JUnit Recipes: Practical Methods for Programmer Testing,” Manning Publications. | zh_TW |
dc.relation.reference (參考文獻) | 【13】 ANTLR Parser Generator, http://www.antlr.org/ | zh_TW |
dc.relation.reference (參考文獻) | 【14】 Eclipse Foundation Inc., “Folding in Eclipse Text Editors,” http://www.eclipse.org/articles/Article-Folding-in-Eclipse-Text-Editors/folding.html | zh_TW |
dc.relation.reference (參考文獻) | 【15】 Eclipse Foundation Inc., Dynamic Languages Toolkit, http://www.eclipse.org/dltk/ | zh_TW |
dc.relation.reference (參考文獻) | 【16】 Eclipse Foundation Inc., Eclipse Home Page, http://www.eclipse.org/ | zh_TW |
dc.relation.reference (參考文獻) | 【17】 Eclipse Foundation Inc., Eclipse IDE Meta-tooling Platform, | zh_TW |
dc.relation.reference (參考文獻) | http://eclipse-imp.sourceforge.net/imp.html | zh_TW |
dc.relation.reference (參考文獻) | 【18】 Eclipse Foundation Inc., Eclipse Modeling Framework Project (EMF), | zh_TW |
dc.relation.reference (參考文獻) | http://www.eclipse.org/modeling/emf/ | zh_TW |
dc.relation.reference (參考文獻) | 【19】 Eclipse Foundation Inc., “Eclipse Platform Technical Overview,” | zh_TW |
dc.relation.reference (參考文獻) | http://www.eclipse.org/whitepapers/eclipse-overview.pdf | zh_TW |
dc.relation.reference (參考文獻) | 【20】 Eclipse Foundation Inc., “JET Tutorial Part 1,” | zh_TW |
dc.relation.reference (參考文獻) | http://www.eclipse.orgarticles/Article-JET/jet_tutorial1.html | zh_TW |
dc.relation.reference (參考文獻) | 【21】 Eclipse Foundation Inc., openArchitectureWare, http://www.eclipse.org/gmt/oaw/ | zh_TW |
dc.relation.reference (參考文獻) | 【22】 International Business Machines Corp., “Customize generated models and editors with Eclipse’s JMerge,” http://www.ibm.com/developerworks/library/os-ecemf3/ | zh_TW |
dc.relation.reference (參考文獻) | 【23】 International Business Machines Corp., “Project Builders and Natures, In Eclipse Corner Article,” http://www.eclipse.org/articles/Article-Builders/builders.html | zh_TW |
dc.relation.reference (參考文獻) | 【24】 Java Compiler Compiler, https://javacc.dev.java.net/ | zh_TW |
dc.relation.reference (參考文獻) | 【25】 JetBrains Inc., IntelliJ IDEA : The Most Intelligent Java IDE, | zh_TW |
dc.relation.reference (參考文獻) | http://www.jetbrains.com/idea/ | zh_TW |
dc.relation.reference (參考文獻) | 【26】 LALR Parser Generator, http://sourceforge.net/projects/lpg/ | zh_TW |
dc.relation.reference (參考文獻) | 【27】 NetBeans, http://www.netbeans.org/ | zh_TW |
dc.relation.reference (參考文獻) | 【28】 Object Management Group Inc., http://www.omg.org/ | zh_TW |
dc.relation.reference (參考文獻) | 【29】 Object Management Group Inc., MDA, http://www.omg.org/mda/ | zh_TW |
dc.relation.reference (參考文獻) | 【30】 Object Management Group Inc., XML Metadata Interchange, | zh_TW |
dc.relation.reference (參考文獻) | http://www.omg.org/technology/documents/formal/xmi.htm | zh_TW |
dc.relation.reference (參考文獻) | 【31】 SableCC parser generator, http://sablecc.org/ | zh_TW |
dc.relation.reference (參考文獻) | 【32】 Smalltalk group, “Model-View-Controller,” | zh_TW |
dc.relation.reference (參考文獻) | http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html | zh_TW |
dc.relation.reference (參考文獻) | 【33】 SmartTools Software Factories, http://www-sop.inria.fr/smartool/ | zh_TW |
dc.relation.reference (參考文獻) | 【34】 Unified Modeling Language, http://www.uml.org/ | zh_TW |