首页> 中文学位 >基于静态分析的C程序控制流图构造方法研究
【6h】

基于静态分析的C程序控制流图构造方法研究

代理获取

目录

声明

摘要

第一章 绪论

1.1 研究背景及意义

1.2 国内外研究现状及分析

1.2.1 国内外研究现状

1.2.2 有待进一步解决的问题

1.3 本文的主要工作

1.4 本文的组织结构

第二章 相关理论知识及技术

2.1 编译相关理论知识

2.1.1 词法分析

2.1.2 语法分析

2.1.3 语义分析

2.2 分析器自动生成工具ANTLR简介

2.3 ANTLR的语法结构

2.4 本章小结

第三章 构造控制流图的关键技术及解决方案

3.1 控制流图的概念及分析基本流程

3.1.1 控制流图的概念

3.1.2 控制流分析的基本流程

3.2 C语言文法的设计

3.2.1 文法的选取

3.2.2 ANTLR抽象语法树

3.3 控制流图的具体表示形式

3.3.1 简单语句的控制流图

3.3.2 if语句的控制流图

3.3.3 switch语句的控制流图

3.3.4 while语句的控制流图

3.3.5 do_while语句的控制流图

3.3.6 for语句的控制流图

3.3.7 break语句的控制流图

3.3.8 continue语句的控制流图

3.4 控制流图的可视化

3.5 本章小结

第四章 控制流图生成算法的设计与实现

4.1 控制流图相应数据结构的设计

4.1.1 控制流图结点的设计

4.1.2 其他相关数据结构的设计

4.2 控制流图生成算法的设计

4.2.1 简单语句结点处理算法

4.2.2 if语句结点处理算法

4.2.3 switch语句结点处理算法

4.2.4 while语句结点处理算法

4.2.5 do_while语句结点处理算法

4.2.6 for语句结点处理算法

4.2.7 break语句结点处理算法

4.2.8 continue语句结点处理算法

4.2.9 label语句结点处理算法

4.3 本章小结

第五章 控制流图可视化实验系统的设计与实现

5.1 设计思路

5.2 开发环境与技术

5.2.1 ANTLR开发环境

5.2.2 控制流图的可视化

5.3 系统界面

5.4 本章小结

第六章 控制流图的实际应用及实验分析

6.1 系统测试及应用

6.1.1 if语句测试

6.1.2 switch语句测试

6.1.3 while语句测试

6.1.4 do_while语句测试

6.1.5 for语句测试

6.1.6 包含多种语句的综合测试

6.2 本章小结

第七章 结束语

7.1 工作总结

7.2 不足之处与下一步的工作

参考文献

附录1 ANSI_C文法

附录2 GraphViz类

致谢

攻读学位期间发表的论文

展开▼

摘要

控制流分析作为软件分析的重要内容,在软件工程领域受到了越来越广泛的关注。控制流分析的主要目的是构造程序的控制流图。利用控制流分析技术对源程序进行控制流分析,并生成其所对应的控制流图,是目前软件工程领域研究的热点课题之一。控制流图在程序的分析和理解领域有着广泛的应用。
  本文以C程序源代码作为研究对象,并利用静态分析技术,来构造程序的控制流图。首先在C语言文法的基础上,对C语言的各种语句结构和用法进行了深入的分析和研究,重点分析了其各种语句结构的控制流走向及其特点,然后据此设计了相应的数据结构和从源程序自动生成其所对应的程序控制流图的算法;接下来根据程序控制流图生成算法,利用语法制导翻译技术,在分析器自动生成工具ANTLR的基础上,自动的生成其所对应的控制流分析器,然后利用生成的控制流分析器对给定的C源程序进行分析便可得到其所对应的控制流图;此外为了把生成韵控制流图以直观的形式展现给用户,我们还采用了相关的技术对其进行可视化输出研究,并在此基础上最终实现了一个面向C语言源代码的程序控制流图自动生成的实验系统,并且我们把此系统应用在了实际的教学中,取得了良好的效果。
  实验结果表明,本文提出的基于静态分析的C程序控制流图构造方法能够正确的生成程序所对应的控制流图,并且本文所采用的控制流分析方法还可以对程序中存在的各种复杂语句结构以及它们之间的相互嵌套进行分析。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号