學術產出-Theses

Article View/Open

Publication Export

Google ScholarTM

政大圖書館

Citation Infomation

  • No doi shows Citation Infomation
題名 利用模型驅動技術快速產生領域專屬語言之執行與偵錯環境
Rapid generation of executing and debugging environments for Domain-Specific languages based on Model-Driven technology
作者 趙仁鋒
Chao, Jen Feng
貢獻者 陳正佳
Chen, Chen Chia
趙仁鋒
Chao, Jen Feng
關鍵詞 執行
偵錯
生成
專屬領域語言
自然語意
Executing
Debugging
Generation
Domain-Specific Language
Natural Semantic
日期 2011
上傳時間 17-Apr-2012 09:16:54 (UTC+8)
摘要 領域專屬語言的設計理念是希望能夠協助使用者在特定領域上解決特定問題。然而,大多數領域專屬語言的開發環境與工具均非常貧乏,這將會增加使用者在開發程式上的困難。
所以本研究利用模型導向技術來建構一套生成系統,使用者只要輸入領域專屬語言的語意以及偵錯定義,就能快速生成語言的執行與偵錯環境,並提供完善的操作介面,輔助使用者加快程式開發的速度。
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.
參考文獻 [1] A. van Deursen, P. Klint, and J. Visser, "Domain-specific languages: an annotated bibliography," SIGPLAN Not., vol35, no 6, pp. 26-36, 2000.
[2] O. M. G. Inc., "Omg model driven architecture." http://www.omg.org/mda/, 2011.
[3] E. Foundation, "Eclipse.". http://www.eclipse.org/, 2012.
[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.
[5] F. N. Hanne Riis Nielson, Semantics with Applications: An Appetizer. Springer, 2007.
[6] G. Winskel, The Formal Semantics of Programming Languages. MIT Press, 1993.
[7] G. D. Plotkin, "A structural approach to operational semantics," J. Log. Algebr. Program, vol. 60-61, pp. 17-139, 2004.
[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.
[9] R. S. Alfred V. Aho and J. D. Ullman, Compilers: principles, techniques, and tools. Addison-Wesley Longman Publishing Co., Inc., 2nd ed., 2006.
[10] "The lex & yacc page." http://dinosaur.compilertools.net/.
[11] "Relational meta-language and tools." http://www.ida.liu.se/~pelab/rml/, 2008.
[12] "k-framework." http://code.google.com/p/k-framework/, 2011.
[13] "Asf+sdf." http://www.meta-environment.org/Meta-Environment/ASF%2bSDF, 2010.
[14] "Stratego/xt." http://strategoxt.org/, 2011.
[15] "The txl programming language." http://www.txl.ca/, 2011.
[16] D. Prawitz, Natural Deduction: A Proof-Theoretical Study. Dover Publications, 2006.
[17] T. Despeyroux, "Typol: A formalism to implement natural semantics," research report, INRIA Sophia-Antipolis, 1988.
[18] M. Pettersson, Compiling Natural Semantics, vol. 1549 of Lecture Notes in Computer Science. Springer, 1999.
[19] A. Blewitt, "Getting started with eclipse plug-ins: understanding extension points." http://www.eclipsezone.com/
[20] "Eclipse java development tools." http://www.eclipse.org/jdt/, 2012.
[21] "Plug-in development environment." http://www.eclipse.org/, 2012.
[22] T.E. Foundation, "Xtext." http://www.eclipse.org/Xtext/, 2011.
[23] "Eclipse modeling framework project." http://eclipse.org/modeling/emf/, 2012.
[24] T. Parr, "Antlr parser generator." http://www.antlr.org/, 2012.
[25] T. E. Foundation, "Xtend." http://www.eclipse.org/Xtext/xtend/, 2011.
[26] "Dsl debugging framework." http://students.cis.uab.edu/wuh/DDF/index.html, 2008.
[27] "Eprovide." http://eprovide.sourceforge.net/, 2008.
[28] "Spoofax." http://strategoxt.org/Spoofax, 2011.
[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.
[30] M. Fowler, "Domain specific language." http://www.martinfowler.com/bliki/DomainSpecificLanguage.html, 2009.
[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.
[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.
[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.
[34] J. Heering, R. H. Hendriks, P. Klint, and J. Rekers, "The syntax definition formalism sdf," SIGPLAN Not. 24, pp. 43-75, November 1989.
[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.
[36] G. Kiczales, J. Lamping, and etc. "Aspect-oriented programming," in European Conference on Object-Oriented Programming(ECOOP), pp. 220-242, June 1997.
[37] M. T. Robin Milner and R. Harper, The Definition of Standard ML. The MIT Press, 1997.
[38] T. E. Foundation, "We have lift-off: The launching framework in eclipse," http://www.eclipse.org/articles/
[39] D. Wright and B. Freeman-Benson, "How to write an eclipse debugger," http://www.eclipse.org/articles/
[40] M. Odersky, "The scala programming language." http://www.scala-lang.org/, 2012.
描述 碩士
國立政治大學
資訊科學學系
96753019
100
資料來源 http://thesis.lib.nccu.edu.tw/record/#G0967530191
資料類型 thesis
dc.contributor.advisor 陳正佳zh_TW
dc.contributor.advisor Chen, Chen Chiaen_US
dc.contributor.author (Authors) 趙仁鋒zh_TW
dc.contributor.author (Authors) Chao, Jen Fengen_US
dc.creator (作者) 趙仁鋒zh_TW
dc.creator (作者) Chao, Jen Fengen_US
dc.date (日期) 2011en_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) G0967530191en_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 (描述) 96753019zh_TW
dc.description (描述) 100zh_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/#G0967530191en_US
dc.subject (關鍵詞) 執行zh_TW
dc.subject (關鍵詞) 偵錯zh_TW
dc.subject (關鍵詞) 生成zh_TW
dc.subject (關鍵詞) 專屬領域語言zh_TW
dc.subject (關鍵詞) 自然語意zh_TW
dc.subject (關鍵詞) Executingen_US
dc.subject (關鍵詞) Debuggingen_US
dc.subject (關鍵詞) Generationen_US
dc.subject (關鍵詞) Domain-Specific Languageen_US
dc.subject (關鍵詞) Natural Semanticen_US
dc.title (題名) 利用模型驅動技術快速產生領域專屬語言之執行與偵錯環境zh_TW
dc.title (題名) Rapid generation of executing and debugging environments for Domain-Specific languages based on Model-Driven technologyen_US
dc.type (資料類型) thesisen
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