dc.contributor.advisor | 陳正佳 | zh_TW |
dc.contributor.advisor | Chen, Chen Chia | en_US |
dc.contributor.author (Authors) | 趙仁鋒 | zh_TW |
dc.contributor.author (Authors) | Chao, Jen Feng | en_US |
dc.creator (作者) | 趙仁鋒 | zh_TW |
dc.creator (作者) | Chao, Jen Feng | en_US |
dc.date (日期) | 2011 | en_US |
dc.date.accessioned | 17-Apr-2012 09:16:54 (UTC+8) | - |
dc.date.available | 17-Apr-2012 09:16:54 (UTC+8) | - |
dc.date.issued (上傳時間) | 17-Apr-2012 09:16:54 (UTC+8) | - |
dc.identifier (Other Identifiers) | G0967530191 | en_US |
dc.identifier.uri (URI) | http://nccur.lib.nccu.edu.tw/handle/140.119/52777 | - |
dc.description (描述) | 碩士 | zh_TW |
dc.description (描述) | 國立政治大學 | zh_TW |
dc.description (描述) | 資訊科學學系 | zh_TW |
dc.description (描述) | 96753019 | zh_TW |
dc.description (描述) | 100 | zh_TW |
dc.description.abstract (摘要) | 領域專屬語言的設計理念是希望能夠協助使用者在特定領域上解決特定問題。然而,大多數領域專屬語言的開發環境與工具均非常貧乏,這將會增加使用者在開發程式上的困難。所以本研究利用模型導向技術來建構一套生成系統,使用者只要輸入領域專屬語言的語意以及偵錯定義,就能快速生成語言的執行與偵錯環境,並提供完善的操作介面,輔助使用者加快程式開發的速度。 | zh_TW |
dc.description.abstract (摘要) | The purpose of creating domain-specific languages (DSLs) is to help user solve problems in a particular domain. However, most DSLs are lack of development environments and tools, which would be more difficult to develop programs.This thesis is aimed to develop a generating system based on model-driven technology. Given the semantics and debugging definitions of a domain-specific language, the system would be able to generate an executing and debugging environment for the language with friendly user interface, thus improving efficiency and productivity of using the language. | en_US |
dc.description.tableofcontents | 第一章 序論 . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 問題動機. . . . . . . . . . . . . . . . . . . . . . 1 1.2 實現策略. . . . . . . . . . . . . . . . . . . . . . 1 1.3 特色貢獻. . . . . . . . . . . . . . . . . . . . . . 2 1.4 章節架構. . . . . . . . . . . . . . . . . . . . . . 3第二章 相關研究探討 . . . . . . . . . . . . . . . . . . . 4 2.1 正規語意. . . . . . . . . . . . . . . . . . . . . . 4 2.2 編譯器與直譯器生成工具. . . . . . . . . . . . . . . 5 2.2.1 Relational Meta-Language (RML) And Tools. . . . 6 2.3 使用者偵錯介面. . . . . . . . . . . . . . . . . . . 6 2.3.1 Eclipse Debug Platform. . . . . . . . . . . . . 6 2.4 語言開發框架. . . . . . . . . . . . . . . . . . . . 7 2.4.1 Xtext . . . . . . . . . . . . . . . . . . . . . 8 2.5 相似系統. . . . . . . . . . . . . . . . . . . . . . 8 2.5.1 DSL Debugging Framework . . . . . . . . . . . . 8 2.5.2 EProvide. . . . . . . . . . . . . . . . . . . . 9 2.5.3 Spoofax 偵錯器生成框架. . . . . . . . . . . . . 10 2.5.4 相似系統比較. . . . . . . . . . . . . . . . . . 11第三章 系統架構分析 . . . . . . . . . . . . . . . . . . . 12 3.1 架構概要. . . . . . . . . . . . . . . . . . . . . . 12 3.1.1 系統生成時期架構. . . . . . . . . . . . . . . . 13 3.1.2 系統執行時期架構. . . . . . . . . . . . . . . . 14 3.2 系統輸入模型. . . . . . . . . . . . . . . . . . . . 15 3.2.1 文法. . . . . . . . . . . . . . . . . . . . . . 15 3.2.2 自然語意. . . . . . . . . . . . . . . . . . . . 16 3.2.3 偵錯指令. . . . . . . . . . . . . . . . . . . . 26 3.3 RGD2Code. . . . . . . . . . . . . . . . . . . . . . 29 3.4 RageDen 執行平台. . . . . . . . . . . . . . . . . . 30 3.5 RageDen 偵錯套件. . . . . . . . . . . . . . . . . . 31 3.5.1 啟動器. . . . . . . . . . . . . . . . . . . . . 32 3.5.2 偵錯模型. . . . . . . . . . . . . . . . . . . . 32 3.5.3 中斷點機制. . . . . . . . . . . . . . . . . . . 32 3.5.4 原始碼整合顯示. . . . . . . . . . . . . . . . . 33第四章 系統實作 . . . . . . . . . . . . . . . . . . . . . 35 4.1 建立RGD2Code. . . . . . . . . . . . . . . . . . . . 35 4.2 建構RageDen 執行平台. . . . . . . . . . . . . . . . 37 4.2.1 載入執行元件. . . . . . . . . . . . . . . . . . 37 4.2.2 實現偵錯機制. . . . . . . . . . . . . . . . . . 39 4.2.3 接收偵錯命令與回傳偵錯事件. . . . . . . . . . . 46 4.3 實作RageDen 偵錯套件. . . . . . . . . . . . . . . . 47 4.3.1 建構啟動器. . . . . . . . . . . . . . . . . . . 47 4.3.2 實作偵錯模型. . . . . . . . . . . . . . . . . . 48 4.3.3 設置中斷點機制. . . . . . . . . . . . . . . . . 52 4.3.4 整合原始碼顯示. . . . . . . . . . . . . . . . . 53第五章 系統範例 . . . . . . . . . . . . . . . . . . . . . 65 5.1 專案設置. . . . . . . . . . . . . . . . . . . . . . 65 5.2 建立Robot 的編輯環境. . . . . . . . . . . . . . . . 66 5.3 描述Robot 自然語意及偵錯指令. . . . . . . . . . . . 66 5.4 生成執行元件並新增延伸元件. . . . . . . . . . . . . 73 5.5 執行與偵錯Robot 程式碼. . . . . . . . . . . . . . . 73第六章 結論與未來展望 . . . . . . . . . . . . . . . . . . 76 6.1 結論. . . . . . . . . . . . . . . . . . . . . . . . 76 6.2 未來展望. . . . . . . . . . . . . . . . . . . . . . 76參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . 80附錄A:RGD 文法規則 . . . . . . . . . . . . . . . . . . . 82 | zh_TW |
dc.language.iso | en_US | - |
dc.source.uri (資料來源) | http://thesis.lib.nccu.edu.tw/record/#G0967530191 | en_US |
dc.subject (關鍵詞) | 執行 | zh_TW |
dc.subject (關鍵詞) | 偵錯 | zh_TW |
dc.subject (關鍵詞) | 生成 | zh_TW |
dc.subject (關鍵詞) | 專屬領域語言 | zh_TW |
dc.subject (關鍵詞) | 自然語意 | zh_TW |
dc.subject (關鍵詞) | Executing | en_US |
dc.subject (關鍵詞) | Debugging | en_US |
dc.subject (關鍵詞) | Generation | en_US |
dc.subject (關鍵詞) | Domain-Specific Language | en_US |
dc.subject (關鍵詞) | Natural Semantic | en_US |
dc.title (題名) | 利用模型驅動技術快速產生領域專屬語言之執行與偵錯環境 | zh_TW |
dc.title (題名) | Rapid generation of executing and debugging environments for Domain-Specific languages based on Model-Driven technology | en_US |
dc.type (資料類型) | thesis | en |
dc.relation.reference (參考文獻) | [1] A. van Deursen, P. Klint, and J. Visser, "Domain-specific languages: an annotated bibliography," SIGPLAN Not., vol35, no 6, pp. 26-36, 2000. | zh_TW |
dc.relation.reference (參考文獻) | [2] O. M. G. Inc., "Omg model driven architecture." http://www.omg.org/mda/, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [3] E. Foundation, "Eclipse.". http://www.eclipse.org/, 2012. | zh_TW |
dc.relation.reference (參考文獻) | [4] D. Wright, and C. Windatt, "Debug platform: The basics." http://www.eclipse.org/eclipse/debug/documents/ec_2008/Debug_Tutorial_Basic_2008.ppt, 2008. | zh_TW |
dc.relation.reference (參考文獻) | [5] F. N. Hanne Riis Nielson, Semantics with Applications: An Appetizer. Springer, 2007. | zh_TW |
dc.relation.reference (參考文獻) | [6] G. Winskel, The Formal Semantics of Programming Languages. MIT Press, 1993. | zh_TW |
dc.relation.reference (參考文獻) | [7] G. D. Plotkin, "A structural approach to operational semantics," J. Log. Algebr. Program, vol. 60-61, pp. 17-139, 2004. | zh_TW |
dc.relation.reference (參考文獻) | [8] G. Kahn, "Natural semantics," in STACS (F.-J. Brandenburg, G. Vidal-Naquet, and M. Wirsing, eds.), vol. 247 of Lecture Notes in Computer Science, pp. 22-39, Springer, 1987. | zh_TW |
dc.relation.reference (參考文獻) | [9] R. S. Alfred V. Aho and J. D. Ullman, Compilers: principles, techniques, and tools. Addison-Wesley Longman Publishing Co., Inc., 2nd ed., 2006. | zh_TW |
dc.relation.reference (參考文獻) | [10] "The lex & yacc page." http://dinosaur.compilertools.net/. | zh_TW |
dc.relation.reference (參考文獻) | [11] "Relational meta-language and tools." http://www.ida.liu.se/~pelab/rml/, 2008. | zh_TW |
dc.relation.reference (參考文獻) | [12] "k-framework." http://code.google.com/p/k-framework/, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [13] "Asf+sdf." http://www.meta-environment.org/Meta-Environment/ASF%2bSDF, 2010. | zh_TW |
dc.relation.reference (參考文獻) | [14] "Stratego/xt." http://strategoxt.org/, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [15] "The txl programming language." http://www.txl.ca/, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [16] D. Prawitz, Natural Deduction: A Proof-Theoretical Study. Dover Publications, 2006. | zh_TW |
dc.relation.reference (參考文獻) | [17] T. Despeyroux, "Typol: A formalism to implement natural semantics," research report, INRIA Sophia-Antipolis, 1988. | zh_TW |
dc.relation.reference (參考文獻) | [18] M. Pettersson, Compiling Natural Semantics, vol. 1549 of Lecture Notes in Computer Science. Springer, 1999. | zh_TW |
dc.relation.reference (參考文獻) | [19] A. Blewitt, "Getting started with eclipse plug-ins: understanding extension points." http://www.eclipsezone.com/ | zh_TW |
dc.relation.reference (參考文獻) | [20] "Eclipse java development tools." http://www.eclipse.org/jdt/, 2012. | zh_TW |
dc.relation.reference (參考文獻) | [21] "Plug-in development environment." http://www.eclipse.org/, 2012. | zh_TW |
dc.relation.reference (參考文獻) | [22] T.E. Foundation, "Xtext." http://www.eclipse.org/Xtext/, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [23] "Eclipse modeling framework project." http://eclipse.org/modeling/emf/, 2012. | zh_TW |
dc.relation.reference (參考文獻) | [24] T. Parr, "Antlr parser generator." http://www.antlr.org/, 2012. | zh_TW |
dc.relation.reference (參考文獻) | [25] T. E. Foundation, "Xtend." http://www.eclipse.org/Xtext/xtend/, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [26] "Dsl debugging framework." http://students.cis.uab.edu/wuh/DDF/index.html, 2008. | zh_TW |
dc.relation.reference (參考文獻) | [27] "Eprovide." http://eprovide.sourceforge.net/, 2008. | zh_TW |
dc.relation.reference (參考文獻) | [28] "Spoofax." http://strategoxt.org/Spoofax, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [29] R. T. Lindeman, L. C. L. Kats, and E. Visser, "Declaratively defining domain-specific language debuggers." in Generative Programming and Component Engineering, 7th International Conference, GPCE 2011, Proceedings (E. Denney and U. P. Schultz, eds.), ACM, 2011. | zh_TW |
dc.relation.reference (參考文獻) | [30] M. Fowler, "Domain specific language." http://www.martinfowler.com/bliki/DomainSpecificLanguage.html, 2009. | zh_TW |
dc.relation.reference (參考文獻) | [31] H. Wu, J. Gray, and M. Mernik, "Grammar-driven generation of domain-specific language debuggers," Software : Practice and Experience, vol.38, pp. 1073-1103, 2008. | zh_TW |
dc.relation.reference (參考文獻) | [32] D. A. Sadilek and G. Wachsmuth, "Prototyping visual interpreters and debuggers for domain-specific modelling languages," in Proceedings of the 4th European conference on Model Driven Architecture: Foundations and Applications, ECMDA-FA `08, (Berlin, Heidelberg), pp. 63-78, Springer-Verlag, 2008. | zh_TW |
dc.relation.reference (參考文獻) | [33] J. F. Andreas Blunk and D. A. Sadilek, "Modelling a debugger for an imperative voice controllanguage," in Proceedings of the 14th international SDL conference on Design for motes and mobiles, SDL`09, (Berlin, Heidelberg), pp. 149-164, Springer-Verlag, 2009. | zh_TW |
dc.relation.reference (參考文獻) | [34] J. Heering, R. H. Hendriks, P. Klint, and J. Rekers, "The syntax definition formalism sdf," SIGPLAN Not. 24, pp. 43-75, November 1989. | zh_TW |
dc.relation.reference (參考文獻) | [35] H. Wu, J. Gray, S. Roychoudhury and M. Mernik, "Weaving a debugging aspect into domain-specific language grammars," in Proceedings of the 2005 ACM symposium on Applied computing, SAC `05, pp. 1370-1374, ACM, 2005. | zh_TW |
dc.relation.reference (參考文獻) | [36] G. Kiczales, J. Lamping, and etc. "Aspect-oriented programming," in European Conference on Object-Oriented Programming(ECOOP), pp. 220-242, June 1997. | zh_TW |
dc.relation.reference (參考文獻) | [37] M. T. Robin Milner and R. Harper, The Definition of Standard ML. The MIT Press, 1997. | zh_TW |
dc.relation.reference (參考文獻) | [38] T. E. Foundation, "We have lift-off: The launching framework in eclipse," http://www.eclipse.org/articles/ | zh_TW |
dc.relation.reference (參考文獻) | [39] D. Wright and B. Freeman-Benson, "How to write an eclipse debugger," http://www.eclipse.org/articles/ | zh_TW |
dc.relation.reference (參考文獻) | [40] M. Odersky, "The scala programming language." http://www.scala-lang.org/, 2012. | zh_TW |