基于G++前端的C++源代码分析系统的研究与设计

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:14:43
对于这个课题,我请教了一下老师,他的解答是“GCC编译器从结构上可以划分为前端和后端两大部分,前端负责语言的处理,后端负责生成特定物理平台的目标代码。

所谓源代码分析系统就是对源代码进行自动分析,并自动生成一系列分析、评估报告或文档,例如,函数关系图、函数流程图、类系结构图等等(这里只是举了几个最基本的报告文档)。由于G++是开源产品,可以直接使用其源代码,这就可以省去自行开发源代码分析程序的工作,而可以通过剖析和提取G++前端部分(由于源代码分析与物理平台无关,因此不需要使用G++的后端部分),获得源代码的语法级分析功能,在此基础上再进一步实现分析、评估报告文档的生成。”
但是我还是有些不理解,是不是其实就是对G++编译器的源码进行分析和设计,那么G++的编译器的源码又在哪里找的到呢?而其源代码就是用C++编写的,是这个意思吗?

GCC是GNU中的旗舰产品,也是开源世界的重量级产品,大多数开源产品都是基于这个编译器的。

GCC其实是一个编译器的集合,其中的C++编译器就是G++。

GCC的结构很巧妙,是采用前端、后端相结合的方式,前端负责处理语言分析,生成中间代码,后端负责具体的物理平台的处理,负责生成具体的目标代码。这也是GCC能够支持多种语言和多种平台的一个原因。

这个题目就是想利用GCC的这个结构特点,将其前端的语言分析部分提取出来,重构成独立的应用程序,用来对输入的源代码进行分析,并生成分析报告。

代码分析的目的是为程序员提供代码的统计信息、结构信息,甚至更深层次的模式信息,帮助程序员更好地了解和把握程序的结构、框架和模式,提供改进、重构代码的参考依据。

网站: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.0.2/gcc-g++-4.0.2.tar.bz2

一个编译器从理论上来说, 它的实现只有比它低级的语言才能实现, 鸡都没有, 怎么会有蛋呢? 前端是文法分析, 主要是逻辑算法实现, 后端就是和具体的物理器件有关了, 每个厂家生产的, 所以ibm的处理器和intel的处理器的 c语言编译器的与物理接口是不一样的,

你要是真的想对编译器有研究, 那就在www.gnu.org里面好好研究吧