JAVA源代码静态分析系统的设计与实现

来源 :吉林大学 | 被引量 : 0次 | 上传用户:bokui0913
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
计算机技术的高速发展,各种编程语言层出不穷,使用主流编程语言的程序员数不胜数,他们的技术与编程规范参差不齐,代码质量不断下降,需要进行审核的代码不断增多,人工审查代码工作量不断增大,在这样的需求下,用程序审核代码应运而生。目前,国外对此项工程的发展比较早,已取得了很好的效果,大量缩短了审核代码的工作量,解放了不少劳动力,我国的起步比起外国来晚了许多,但也取得了不错的成绩,各大高校都做了不小的贡献,本篇文章也是介绍了对Java源代码进行静态分析的设计与实现。所谓静态分析,就是在无需执行源码的条件下对源码实行检测,与动态分析是相对的,动态分析就是在执行源码的条件下进行分析检测的。静态分析与动态分析相辅相成,共同使用方能取得最大效果。在静态分析过程中,首先是对源码使用前端编译,将源码中的字符流转换成中间表示形式。之后对其进行词法分析和语法分析,构建相应的语法树。再从语法树中提取其中的结点,构建CFG控流图。接下来分析数据流、约束,检查模块,最终达到对代码进行静态分析的目的。在设计系统的过程中,对系统的主要功能、数据结构、类属性与类之间的关系、接口等进行了详细的设计,为之后的实现提供了可靠的设计标准。在此基础上,对系统进行编码实现,其中CFG构建模块,数据流分析模块,缺陷分析模块,污点传播分析模块,代码不可达模块是本文主要介绍的模块实现,分别介绍了它们的实现原理,分析过程,算法等主要内容。完成以上的算法与实现,系统基本成型,在静态分析检测Java源代码中起到很大的作用,随着测试与改进,分析检测结果更加准确。下一步的主要工作是对静态分析系统进行优化处理,使其检测的更加准确,用时更少。
其他文献
传统的理论型课程设置,对包装设计专业学生自身的创造、创新能力培养存在与市场分离的现象,造成学生毕业后不能胜任包装设计师岗位的现象。文章结合包装设计课程的特点、整合
通过介绍孔式管道气动取样机的结构特点及工作原理,阐述了孔式取样机在选矿厂的应用情况,结合现场同班次机械取样和人工取样数据对比,说明该取样机适用于工艺流程长的矿浆管
农机具的水平在一定程度上代表着农业机械化的水平.大中型耕整地机械作为农机具的重要组成部分,需要抓住当前的惠农机遇,围绕我国农业种植模式、农艺需求,加快产业结构调整,
精神赡养是老年人赡养权益的重要内容。我国现有的赡养法律法规对精神赡养的内容有所涉及,但是只起到了“宣言”的作用,总体来说,我国赡养法律制度并不承认精神赡养的法律地
本文基于工作经验,分析了当前压力计量检定中常见的问题,并着重介绍了端正工作态度、提高职业素质,加强对检定人员的职业技能培养,改进计量工具三种解决方案及其具体应用,希
<正>3月的江南已是春暖花开季,比春天更暖人的是一个振奋人心的消息,新疆机械研究院股份有限公司(以下简称新研)与锡柴正式签订战略合作协议,并在月初订购了130台锡柴新恒威
<正>木本油料植物,就是其种子或者果实含油量比较高,经过压榨后浸出油脂、具有经济栽培利用价值的木本植物的总称。陕西省南郑县地处陕西西南部,发展木本油料生产自然条件和