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