(54.236.58.220) 您好!臺灣時間:2021/02/28 23:43
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:趙仁鋒
研究生(外文):Chao, Jen Feng
論文名稱:利用模型驅動技術快速產生領域專屬語言之執行與偵錯環境
論文名稱(外文):Rapid generation of executing and debugging environments for Domain-Specific languages based on Model-Driven technology
指導教授:陳正佳陳正佳引用關係
指導教授(外文):Chen, Chen Chia
學位類別:碩士
校院名稱:國立政治大學
系所名稱:資訊科學學系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2012
畢業學年度:100
語文別:中文
論文頁數:90
中文關鍵詞:執行偵錯生成專屬領域語言自然語意
外文關鍵詞:ExecutingDebuggingGenerationDomain-Specific LanguageNatural Semantic
相關次數:
  • 被引用被引用:0
  • 點閱點閱:94
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
領域專屬語言的設計理念是希望能夠協助使用者在特定領域上解決特定問題。然而,大多數領域專屬語言的開發環境與工具均非常貧乏,這將會增加使用者在開發程式上的困難。
所以本研究利用模型導向技術來建構一套生成系統,使用者只要輸入領域專屬語言的語意以及偵錯定義,就能快速生成語言的執行與偵錯環境,並提供完善的操作介面,輔助使用者加快程式開發的速度。

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
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
[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.

連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
系統版面圖檔 系統版面圖檔