● 摘要
静态分析指在不执行程序的情况下对程序进行的分析,它是白盒测试、程序分析与理解、逆向工程及再工程等CASE研究的核心支撑技术。由于对待分析对象有严格的限制以及开发难度大等局限性,传统的重量级C++静态分析器在应用中受到限制。相比重量级静态分析器,轻量级静态分析器具有易于开发、容错性好、灵活等特点,更适合于解决静态分析需求多样化带来的问题。本文围绕“轻量级C++静态分析器的研究与实现”这一课题,结合国内外研究现状以及北航软件所程序分析与理解工具QESat/C++对静态分析器的功能需求,讨论了如何利用现有先进开发工具和开发方法设计并实现一个用于支持程序理解的轻量级C++静态分析器。本文首先简要介绍了国内外相关领域的研究现状,深入研究了已有的轻量级静态分析器构造方法并分析归纳了它们各自的优缺点,然后根据QESat/C++对轻量级静态分析器的功能需求,分析了静态分析器应具备的语言识别能力。基于前面的分析,本文于第四章先提出轻量级预处理器和模糊语法分析器相结合的基本实现方案,然后详细讨论了条件包含、宏简化、头文件包含等轻量级预处理策略,接下来分析了C++语言的二义性以及C++作用域模型,最后详细讨论了解除二义性、启发式分析、符号表补全等模糊语法分析策略。本文于第五章详细讨论了轻量级C++静态分析器的架构以及关键部分的实现,并于第六章对系统进行实例验证。论文最后部分对本论文的工作做出总结并给出了进一步的工作展望。
相关内容
相关标签