学位论文 > 优秀研究生学位论文题录展示
GCC抽象语法树的解析及控制依赖子图的建立方法研究
作 者: 李鑫
导 师: 苏小红
学 校: 哈尔滨工业大学
专 业: 计算机科学与技术
关键词: 文本抽象语法树 控制依赖子图 抽象语法树解析 系统依赖图
分类号: TP311.11
类 型: 硕士论文
年 份: 2008年
下 载: 86次
引 用: 0次
阅 读: 论文下载
内容摘要
在程序设计语言考试中,编程题自动评分是一项具有实用价值的应用,它是实现在线考试功能的一个关键技术,由于它涉及到多方面的理论和知识,因而成为一个难点。目前,还有一些技术问题需要解决。一是无法对有语法错误的程序进行自动评分;二是分析规模较大程序能力较弱。针对这两个问题,在深入研究已出现的评分模型和现有评分系统的基础上,通过引入当前功能比较强大的编译器GCC(GNU C complier)改善现有系统前端的方式来解决以上两个问题。本文首先对GCC的输出——文本抽象语法树做了详细的研究并提出了GCC抽象语法树解析的定义和与之相关的定义,这一部分是本文的理论基础;其次,在深入研究了几种常见的静态编程题自动评分模型的基础上,提出了基于GCC的C程序自动评分模型;再次,提出了消除文本抽象语法树中冗余信息的算法并给出了算法复杂性分析,实验结果证明该算法取得了提高了GCC抽象语法树解析的时空效率。最后提出了将文本抽象语法树转化为邻接表形式的抽象语法树的算法和控制依赖子图的构建算法,较好完成了系统前端的构建。实验部分的目标是将新前端和原系统的后端连接形成一个新系统,本文给出了连接过程的总体流程和阶段性的结果,然后针对若干实验程序给出了新前端产生的控制依赖子图,实验证明新前端具有良好的适用性。
|
全文目录
摘要 3-4 Abstract 4-7 第1章 绪论 7-12 1.1 课题来源、研究背景和意义 7-9 1.2 国内外研究现状 9-10 1.3 本文的主要研究内容和章节安排 10-12 第2章 GCC 文本抽象语法树 12-21 2.1 GCC 及其工作流程 12 2.2 文本抽象语法树的结构特性 12-20 2.2.1 GCC 语法分析输出—抽象语法树 12-13 2.2.2 文本抽象语法树中的结点 13-16 2.2.3 重要字段说明 16-18 2.2.4 文本抽象语法树的结构特性 18-19 2.2.5 文本抽象语法树解析的含义 19 2.2.6 抽象语法树相关定义及补充 19-20 2.3 本章小结 20-21 第3章 GCC 文本抽象语法树的解析及控制依赖子图的生成 21-45 3.1 基于GCC 的C 程序自动评分模型 21-23 3.2 GCC 文本抽象语法树中冗余信息消除算法 23-27 3.2.1 消除冗余的原因 23 3.2.2 算法的基本思想 23-24 3.2.3 算法的详细描述 24-25 3.2.4 算法的复杂度分析 25 3.2.5 实验分析 25-27 3.3 邻接表形式的抽象语法树的建立算法及实现 27-30 3.3.1 编号映射 27 3.3.2 消除字段冗余 27-28 3.3.3 存储结构设计 28 3.3.4 算法的基本思想与详细描述 28-29 3.3.5 算法的复杂度分析 29 3.3.6 实验分析 29-30 3.4 程序的中间表示——系统依赖图 30-31 3.5 控制依赖子图的生成算法及实现 31-36 3.5.1 算法的基本思想 31-32 3.5.2 算法的详细描述 32-33 3.5.3 算法复杂性分析 33 3.5.4 实验分析 33-35 3.5.5 完成对整个程序控制依赖子图的构建 35-36 3.6 系统依赖图的构建算法及实现 36-44 3.6.1 建立系统依赖图的一般步骤 36-37 3.6.2 求到达-定值信息 37-38 3.6.3 REF 集合和DEF 集合 38-39 3.6.4 求GEN 集合和KILL 集合 39-40 3.6.5 求IN 集合和OUT 集合 40-42 3.6.6 建立数据流边 42-43 3.6.7 实验分析 43-44 3.7 本章小结 44-45 第4章 系统测试与分析 45-53 4.1 新旧系统的连接 45-47 4.2 实验数据 47-48 4.3 对新前端进行测试 48-52 4.4 本章小结 52-53 结论 53-54 参考文献 54-57 攻读学位期间发表的学术论文 57-59 致谢 59
|
相似论文
- 基于告警关联的告警子系统的设计与实现,TN915.06
- 基于GCC抽象语法树文本的C源程序语义分析方法研究,TP311.11
- 基于程序切片的数据库变更影响分析系统的设计与实现,TP311.13
- 面向对象软件FMEA方法研究,TP311.52
- 指针编程题的标准化及其自动评分方法的研究,TP399-C1
- 包含异常处理的Java程序切片研究,TP311.11
- 编程题自动评分系统中结构体的研究与现实,TP311.52
- 面向信号的ATLAS语言分片技术,TN911.6
- 面向对象程序动态切片系统的研究与实现,TP311.11
- 结构语义相似的程序识别方法研究,TP311.1
- 基于数字指纹的C程序克隆检测技术的研究,TP311.11
- 基于程序复制检测技术的学生作业管理技术研究,TP311.11
- 基于GCC抽象语法树文本的C源程序语义分析方法研究,TP311.11
- 考虑指针别名的静态分析技术研究,TP311.11
- AGC负荷自动分配的研究,O242.1;TP311.11
- 基于服务的动态分布式体系结构-Jini技术的研究与应用,TP311.11
- 增量式数据竞争检测,TP311.11
- 基于行为监测的Anti-R/Bootkit的研究与实现,TP311.11
- 基于WDF的PCIe接口高速数据传输卡的驱动程序开发,TP311.11
- 嵌入式Linux交叉调试器设计与实现技术研究,TP311.11
中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 程序设计 > 程序设计方法
© 2012 www.xueweilunwen.com
|