- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基干Clang编译器程序结构探析器策划
基于Clang编译器的程序结构分析器设计 摘 要: 国内的软件测试研究目前还基本停留在比较基础的理论方法和管理方法上,没有在软件测试技术上取得突破。基于当前流行的Clang编译器前端,在抽象语法树生成的过程中运用不同的规则标识各语句结构,同时进行中间结构的改造和校正,得到一个有效的、高正确性的程序结构分析器。程序结构分析器的设计为实现一个有理论基础的综合性白盒测试工具奠定了坚实的底层数据支持
关键词: Clang编译器; 抽象语法树; 程序结构分析; 软件测试
中图分类号:TP311.1 文献标志码:A 文章编号:1006-8228(2016)10-54-03
Design of program structure analyzer based on Clang compiler
Zhou Rui
(Shaanxi institute of technology, Xi’an, Shaanxi 710300, China)
Abstract: At present, the research of software testing in China is still in the basic stage of theoretical methods and management methods, and it has not made any breakthrough in the software testing technology. Based on the front end of current popular Clang compiler, using different rules to identify the structure of statement in the abstract syntax tree generation process, and to carry out the reform and correction of the intermediate structure, an effective program structure analyzer with high accuracy is obtained. The design of program structure analyzer lays a solid underlying data support for realizing a theory based comprehensive white box testing tool.
Key words: Clang compiler; abstract syntax tree; program structure analysis; software testing
0 引言
程序结构分析器的实现离不开一个高效的编译前端作支持,而编译技术到目前为止在各领域得到了广泛的应用。从银行的管理软件到高性能计算,大多数都是高级语言进行编写完成,然后通过静态或动态编译最终在计算机上运用。目前比较流行的编译器是在Apple上使用的LLVM/Clang编译器、由GNU开发的程序语言编译器GCC用于Linux系统下编程、IBM公司研制开发的Java编译器Jikes、Inter公司开发的Open Research Compile,还有常见的MSVC、Borland c、myeclipse和jbuilder等等[3-4]
程序中的缺陷检测是编译器的一项重要任务,也是目前研究的热点和探讨的核心问题。要识别各种错误包括:变量未定义、类型检验、语义错误以及内存泄漏和违规等,就必须在程序分析方面投入更多精力进行设计研究。在保证可靠性和安全性的同时也要减少分析工具的误报,从而避免给程序员带来不必要的麻烦,节约时间,提高效率。因此,编译器技术中静态或动态的程序分析对识别程序中的错误和缺陷有着重要的作用,不过现在面临的问题还不少,出现了许多新的挑战[5]
1 clang的静态分析器
现有的Clang静态分析器已经完成了过程内分析(Intra-ProceduralAnalysis)和路径诊断(Path Diagnostics)两个大模块。其中已实现的过程内分析功能包括源代码级别的控制流图、流敏感的数据流解析器、路径敏感数据流分析引擎、死存储检查和接口检查。而路径诊断信息模块已经提供路径诊断客户端(提供开发新bug报告的抽象接口、独立于生成过程的可视报告、HTML诊断报告)、缺陷报告器(为前一个模块服务)[6]
1.1 静态分析概述
静态分析(static analysis)[1]是指在不执行的情况下对代码进行评估的过程。静态分析非
您可能关注的文档
最近下载
- 汤显祖和牡丹亭.pptx VIP
- 2024年春江苏开放大学Android基础050324第三次形考作业.doc VIP
- 冠状动脉CT血管成像在慢性冠脉综合征的风险分层和诊疗中应用的专家共识.pptx
- 上海市浦东新区华东师范大学第二附属中学2024届高一数学第一学期期末考试试题含解析.doc VIP
- 中级商务汉语 全套课件.PPT VIP
- 中国式现代化党课学习主题教育.pptx VIP
- 行政事业单位审计存在的常见问题与对策.pptx VIP
- 营养科患者营养评估.pptx VIP
- IPC-A-610E-2010 国外国际标准.pdf
- 2024-2025学年高中信息技术(信息科技)必修1 数据与计算沪科版(2019)教学设计合集.docx
原创力文档


文档评论(0)