博碩士論文 107522019 完整後設資料紀錄

DC 欄位 語言
DC.contributor資訊工程學系zh_TW
DC.creator蔡家豪zh_TW
DC.creatorJia-Hao Caien_US
dc.date.accessioned2021-7-20T07:39:07Z
dc.date.available2021-7-20T07:39:07Z
dc.date.issued2021
dc.identifier.urihttp://ir.lib.ncu.edu.tw:88/thesis/view_etd.asp?URN=107522019
dc.contributor.department資訊工程學系zh_TW
DC.description國立中央大學zh_TW
DC.descriptionNational Central Universityen_US
dc.description.abstract程式碼的好壞可以從很多面向來分析。學習者可以從這些評分指標中,學習如何撰寫更好的程式碼。評分者也能藉由評分工具來對程式碼進行程式功能正確與否以外的評價。其中,時間複雜度是評價程式碼好壞與否的重要指標。但分析程式碼的時間複雜度並不是簡單的事。 本研究實作一個基於抽象語法樹分析的程式碼時間複雜度靜態分析工具--RecTCC。現有的基於抽象語法樹分析的工具,因為能獲得的資訊不足,對於遞迴函式的支援性不佳。RecTCC利用Value Numbering的概念及符號表來追蹤函式參數,找出參數與引數之間的值的變化,並以此來當作遞迴呼叫的工作量變化。Big-O AST會在AST上記錄各節點的時間複雜度,走訪Big-O AST並計算循序、選擇、重覆結構的時間複雜度,可找出非遞迴呼叫部份的部份時間複雜度。由以上步驟可以得到遞迴關係式,再搭配Master Theorem來分析遞迴函式的時間複雜度。 本研究將Introduction of Algorithms一書中的演算法分成三類:Loop、If-Else、Recursion,並從各類中挑選演算法來實作並進行評估。與其他工具相比,只有RecTCC對這三類演算法皆有支援。zh_TW
dc.description.abstractThere are several aspects to judge the quality of a source code. Students can learn how to write a better code from these evaluation features. Teachers can evaluate the source code besides the correctness of programs. In these evaluation features, the time complexity is an important feature. However, finding the time complexity of a source code is difficult. In this paper, we implement a static time complexity analysis tool based on AST analysis, called RecTCC. Because of the lack of some information, present analysis tools based on AST analysis are not compatible with recursive functions. RecTCC uses the concept of Value Numbering and symbol tables to chase the function parameters. We take the variations between parameters and arguments as the workload variation of the recursive calls. RecTCC uses Big-O AST to find the time complexities comprised of the non-recursive call parts. Finally, RecTCC can find the time complexities of recursive functions by recurrence relations and the master theorem. In this paper, we separate algorithms in "Introduction of Algorithms" into three categories: Loop, If-Else, Recursion. We implement some algorithms from these categories, and use them to test analysis tools. RecTCC is the only tool compatible with all algorithms in these three categories.en_US
DC.subject時間複雜度zh_TW
DC.subject遞迴函式zh_TW
DC.subject靜態程式分析zh_TW
DC.subject抽象語法樹分析zh_TW
DC.subjectTime complexityen_US
DC.subjectRecursive functionen_US
DC.subjectStatic program analysisen_US
DC.subjectAbstract syntax tree analysisen_US
DC.title教學用靜態時間複雜度分析工具zh_TW
dc.language.isozh-TWzh-TW
DC.titleA Static Time Complexity Analysis Tool for Educationen_US
DC.type博碩士論文zh_TW
DC.typethesisen_US
DC.publisherNational Central Universityen_US

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明