需要金币:![]() ![]() |
资料包括:完整论文 | ![]() |
![]() |
转换比率:金额 X 10=金币数量, 例100元=1000金币 | 论文字数:9293 | ![]() | |
折扣与优惠:团购最低可5折优惠 - 了解详情 | 论文格式:Word格式(*.doc) | ![]() |
摘要:大学数据结构平台是目前计算机学院用于数据结构课程实验以及学生编程能力训练的一个在线编程平台。从平台运行以来已有大量的代码数据,正确的错误的都有保留。而数据结构则是计算机专业在学习其他专业课之前必须学习的基础专业课程,它影响了学生的整个学习过程,其重要程度不言而喻。教师通过数据平台的自动判题节省了修改代码时间,但是目前平台只能给出一些简单的通过率,以及学生也只能得到少量的错误的信息,比如格式错误,运行超时,答案错误等等的词语提示。既不有利于老师去把握学生的情况,也不利于学生对知识点理解评估。 基于上述情况,有了对平台上存在的错误代码进行分析,从而得出相应的错误模式的想法。在得到错误模式后再将此结果整理反馈给教师,达到辅助教师了解学生典型错误,最终帮助学生学习的目的。本项目主要包括三个部分。第一个部分是整理平台的代码数据,对该平台的错误代码先进行大类型分类,再对特定的答案错误进行小分类,以此对整个项目分析起到数据支撑的作用;第二个部分是分析各种类型的错误的特点,选择相应的分析模式,比如基于抽象语法树节点的识别与匹配。第三个部分是整理相关方法与数据,开发一个网站将数据可视化,方便非开发人员(比如教师)对进行信息的查看。
关键词:程序分析;抽象语法树;Clang
目录 摘要 Abstract 1 绪论-1 2 相关概念介绍-2 2.1程序分析-2 2.2编译过程与编译器前端-2 2.3 LLVM\Clang-2 2.4 AST(Abstract Syntax Tree)-3 2.5 GCC与Clang-3 3 需求分析-5 3.1可行性分析-5 3.2 功能需求-5 4 关键技术分析-6 4.1 Clang库结构-6 4.2 驱动程序体系结构-6 4.3 Clang静态分析架构-7 4.4 LibTooling使用分析-7 4.5 AST操作分析-8 4.5.1 LibASTMatchers-8 4.5.2 RecursiveASTVisitor-8 5 分析与设计-9 5.1 数据整理的分析与设计-9 5.1.1 分析-9 5.1.2 数据库设计-9 5.2 设计方法-10 5.2.1 格式错误-10 5.2.2 超时-10 5.2.3 超过指定内存-10 5.2.4 答案错误-11 5.3 可视化设计-11 6 具体实现-12 6.1分析部分-12 6.1.1 超时-12 6.1.2 超内存-13 6.1.3 答案错误-14 6.2可视化界面展示-15 结论-17 参 考 文 献-18 致 谢-19 |