跳到主要內容

簡易檢索 / 詳目顯示

研究生: 彭郁仁
Yu-Jen Peng
論文名稱: 設計與實作視覺化追蹤點以支援xDIVA進行程式動畫
Program Animation with Visual Tracepoint Support in xDIVA
指導教授: 鄭永斌
Yung-Pin Cheng
口試委員:
學位類別: 碩士
Master
系所名稱: 資訊電機學院 - 資訊工程學系
Department of Computer Science & Information Engineering
畢業學年度: 100
語文別: 中文
論文頁數: 49
中文關鍵詞: 追蹤點演算法動畫程式動畫
外文關鍵詞: program animation, algorithm animation, tracepoints
相關次數: 點閱:12下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • Program animation是個困難的問題,這項研究是希望能夠將程式執行的過程以動畫的方式呈現,在產生動畫的過程中,勢必要取得程式內部動態資料來進行視覺化。要取得程式內部動態資料有許多種方法,直覺的兩個方法就是由程式人員增加額外程式碼,以便在程式執行過程中擷取變數資料以產生動畫,但這會造成程式人員的負擔,使得程式人員不願意使用;另一種方法則是跟除錯器溝通,由除錯器取得變數資訊。
    本研究選擇第二種方法,以類似追蹤點(tracepoints)的方式為目標。程式人員(programmer)在程式中插入追蹤點,可指定要觀看的程式執行資訊(例如:變數值、目前所在的函式名稱等)。追蹤點是中斷點(breakpoints)的進階應用,當程式以除錯模式(debug mode)下執行過追蹤點時,程式執行不中斷,然後在輸出視窗印出指定觀看的程式執行資訊。
    本論文提出一種新形式的追蹤點 - Visual Tracepoints。Visual tracepoints維持了追蹤點的特性,程式人員可在程式碼中設置visual tracepoints的位置,然後搭配使用xDIVA(eXtreme Debugger Information Visualization Assistant) 除錯視覺化系統,在xDIVA畫面中產生代表程式狀態變化的程式動畫。本研究提出的visual tracepoints能在不中斷程式之狀況持續更新變數資訊給xDIVA系統,再加上xDIVA原有的layout interpolation功能,有了這兩部份的支援,將可以達到任意的program animation的目標。


    Program animation is a hard task. The goal of program animation is to render program execution with animation. To produce program animation, it is necessary to acquire the internal state of a program. Technically, there are two ways to achieve such a goal. The first one is to insert auxiliary code into the source code in order to collect the information from the program. However, inserting code causes extra efforts, which make programmers reluctant to use. The other way is to retrieve needed information from the debugger, which is the approach adopt in this work.
    A tracepoint is a non-stop breakpoint that displays the internal state of a program specified by programmer. Programmers may insert several tracepoints in their program to display interested run-time information such as the value of variables or current function name in the debugging process. When a program is executed in debug mode and reaches a tracepoint, the output window displays the interested information and then continues the execution.
    In this paper, we propose a new kind of tracepoints – visual tracepoints. Programmers insert visual tracepoints in their program and program animation is generated together with xDIVA(eXtreme Debugger Information Visualization Assistant) system. In our approach, visual tracepoints keep updating the run-time information to xDIVA system without suspending the program execution. Together with the layout interpolation animation feature in xDIVA, we propose a practical way toward to generic program animation.

    第一章 緒論 1 1-1 問題描述 1 1-2 系統概述 4 1-3 論文組織 5 第二章 研究背景 6 2-1 Program Animation 6 2-2 相關工具研究 8 第三章 xDIVA Overview 14 3-1 前端plug-in子系統 14 3-2 後端DIVA子系統 16 3-3 DIVA VM 17 3-4 DIVA Layout及其interpolation 19 第四章 方法與實作 23 4-1 本研究目標 23 4-2 程式人員使用流程 23 4-3 系統架構 25 4-3-1 VisualizationHandler模組 25 4-3-2 VisualpointHandler模組 26 4-3-3 InstHandler模組 26 4-4 Visual Studio Add-in SDK 27 第五章 系統評估 29 5-1 Bubble Sort演算法 29 5-2 Convex Hull演算法 31 5-3 Vertex Coloring問題 34 第六章 結論與未來展望 38 6-1 結論 38 6-2 未來展望 38 參考文獻 40

    [1] WIKIPEDIA, “Program animation” [Online] Available from: http://en.wikipedia.org/wiki/Program_animation
    [2] Microsoft, MSDN. “Breakpoints and Tracepoints” [Online] Available from: http://msdn.microsoft.com/en-us/library/ktf38f66%28v=vs.90%29.aspx
    [3] Yung-Pin Cheng, Jih-Feng Chen, Ming-Chieh Chiu, Nien-Wei Lai, and Chien-Chih Tseng, “xDiva: A debugging visualization system with composable visualization metaphors” OOPSLA Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, pp. 807-810, 2008.
    [4] Yung-Pin Cheng, Han-Yi Tsai, Chih-Shun Wang, and Chien-Hsin Hsueh, “xDIVA: automatic animation between debugging break points” SOFTVIS Proceedings of the 5th international symposium on Software visualization, pp. 221-222, 2010.
    [5] WIKIPEDIA, “Debugging” [Online] Available from: http://en.wikipedia.org/wiki/Debugging
    [6] Microsoft. “Visual Studio IDE” [Online] Available from: http://www.microsoft.com/visualstudio/en-us
    [7] Guido Rosling, Bernd Freisleben, “Experiences in using animations in introductory computer science lectures” SIGCSE Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, pp. 134-138 ,2000
    [8] Jorma Sajaniemi, Marja Kuittinen, “Program Animation Based on the Roles of Variables” SOFTVIS Proceedings of the 2003 ACM symposium on Software visualization, pp. 7-ff , 2003
    [9] Tobias Lauer, Rainer Muller, Thomas Ottmann, “Animations for Teaching Purposes: Now and Tomorrow” J.UCS (Journal of Universal Computer Science), Vol 7 Issue 5, pp. 420-433, 2001
    [10] John T. Stasko, Eileen Kraemer, “A Methodology for Building Application-Specific Visualizations of Parallel Programs” Journal of Parallel and Distributed Computing, Vol 18 Issue 2, pp. 258-264, 1993
    [11] John T. Stasko, “Tango: A framework and system for algorithm animation” ACM SIGCHI Bulletin, Vol 21 Issue 3, pp. 59-60, 1990
    [12] John T. Stasko, “Animating algorithm with XTANGO” ACM SIGACT News, Vol 23 Issue 2, pp. 67-71, 1992
    [13] Andres Moreno, Niko Myller, Erkki Sutinen, Mordechai Ben-Ari, “Visualizing Programs with Jeliot 3” AVI Proceedings of the working conference on Advanced visual interfaces, pp. 373-376, 2004
    [14] Andres Moreno, Niko Myller, Erkki Sutinen, Mordechai Ben-Ari, “Program Animation in Jeliot 3” ITiCSE Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education, pp. 265-265, 2004
    [15] James H. Cross II, T. Dean Hendrix, Jhilmil Jain, Larry A. Barowski, “Dynamic Object Viewers for Data Structure” SIGCSE Proceedings of the 38th SIGCSE technical symposium on Computer science education, pp. 4-8, 2007
    [16] Juha Helminen, Lauri Malmi, “Jype – A Program Visualization and Programming Exercise Tool for Python” SOFTVIS Proceedings of the 5th international symposium on Software visualization, pp. 153-162, 2010
    [17] WIKIPEDIA, “Component diagram” [Online] Available from: http://en.wikipedia.org/wiki/Component_diagram
    [18] WIKIPEDIA, “Standard Template Library” [Online] Available from: http://en.wikipedia.org/wiki/Standard_Template_Library
    [19] WIKIPEDIA, “TCL” [Online] Available from: http://en.wikipedia.org/wiki/Tcl
    [20] Eclipse, “Eclipse” [Online] Available from: http://www.eclipse.org/
    [21] Microsoft, MSDN. “Introduction to Project Extensibility” [Online] Available from: http://msdn.microsoft.com/en-us/library/4eeya3de
    [22] WIKIPEDIA, “Bubble sort” [Online] Available from: http://en.wikipedia.org/wiki/Bubble_sort
    [23] WIKIPEDIA, “Convex hull algorithms” [Online] Available from: http://en.wikipedia.org/wiki/Convex_hull_algorithms
    [24] WIKIPEDIA, “Graph coloring” [Online] Available from: http://en.wikipedia.org/wiki/Graph_coloring
    [25] WIKIPEDIA, “Instrumentation (computer programming)” [Online] Available from: http://en.wikipedia.org/wiki/Instrumentation_(computer_programming)
    [26] Python, “Python Programming Language – Official Website” [Online] Available from: http://www.python.org/
    [27] R. M. Stallman, R. Pesch and S. Shebs, “Debugging with GDB: The GNU Source-Level Debugger, Copyright (C) 1988-2006 Free Software Foundation, Inc.” [Online] Available from: http://www.gnu.org/software/gdb/documentation/
    [28] Oracle, “jdb – The Java Debugger” [Online] Available from: http://docs.oracle.com/javase/1.3/docs/tooldocs/solaris/jdb.html
    [29] Microsoft, MSDN. “Customizing, Automating, and Extending the Development Environment” [Online] Available from: http://msdn.microsoft.com/en-us/library/ae3cxw0w
    [30] Eclipse Plugin Site. “Eclipse Plugin Development” [Online] Available from: http://www.eclipsepluginsite.com/

    QR CODE
    :::