数据流分析在程序验证方面的原理与实现Word格式.docx
- 文档编号:14754451
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:66
- 大小:5.49MB
数据流分析在程序验证方面的原理与实现Word格式.docx
《数据流分析在程序验证方面的原理与实现Word格式.docx》由会员分享,可在线阅读,更多相关《数据流分析在程序验证方面的原理与实现Word格式.docx(66页珍藏版)》请在冰豆网上搜索。
2018年9月
学位论文版权使用授权书
本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。
特授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索,提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。
同意学校向国家有关部门或机构送交论文的复印件和磁盘。
学校可以为存在馆际合作关系的兄弟高校用户提供文献传递服务和交换服务。
(保密的学位论文在解密后适用本授权说明)
学位论文作者签名:
导师签名:
签字日期:
年月日签字日期:
年月日
学校代码:
10004密级:
公开
作者姓名:
学号:
导师姓名:
职称:
教授
工程硕士专业领域:
软件工程学位级别:
硕士
致谢
时光荏苒,岁月如梭。
在北京交通大学三年的研究生生活己经进入了尾声。
在即将毕业之际,回首往昔,一切的辛苦和努力、所有的欢乐和痛苦都己化成了记忆,唯有留下的沉甸甸的知识的积淀和做人的本领,见证了我的成长。
值此论文完成之际,我要向我的母校、导师、同学和所有曾关心帮助过我的人们表示最衷心的感谢。
首先,我要感谢我的研究生导师的XXX教授。
他渊博的专业知识、严谨的治学精神以及和蔼的处世之道是留给我的第一印象。
在读研的三年中,XXX老师给予我的,不仅是科研上的细心指导,还有思想、生活上无微不至的关怀。
在撰写本论文期间,XXX老师倾注大量的时间,不厌其烦的多次帮助修改,逐字逐句进行推敲,促成了本文的顺利完成,为我的研究生生涯划上了完美的休止符。
我感谢你,我的导师,成为您的学生,真乃我三生有幸。
然后,我要感谢我亲爱的同学们:
XXX、XXX、XXX、XXX、XXX、XXX、XXX、XXX、XXX。
在硕士期间研究工作中,给了我很多建设性意见,谢谢你们在最艰难的时候鼓励我。
你们一丝不苟、严谨求实的科研作风都是我学习的榜样。
最后,我要感谢培养我长大父母,作为您们的儿子,我感到由衷的幸福。
现在,您们的孩子己经长大了,他将用他的双手报答您们给予的一切!
摘要
在程序验证中,人们都希望能够自动化获取一些信息来提高证明效率。
数据流分析是一种典型的静态程序分析方法。
将它的分析方法应用到代码验证中是一个很好的选择,但现有的数据流分析技术大部分都是完全自动化的分析技术,使用者不能够对分析过程进行干预,不能通过一些关键信息来引导数据流分析的过程,从而阻碍了数据流分析技术在代码验证中发挥更大的作用;
而且现有数据流分析技术都相对孤立,无法将其他数据流分析技术的结果再利用。
为了在交互式代码验证过程中充分发挥数据流分析技术的能力,我们应该使数据流分析技术相互之间能够相互交流,并允许使用者在关键点上进行人工干预。
本文以发挥数据流分析方法在交互式代码验证中的分析能力作为出发点,提出一套切实可行的方法和平台,来整合不同的数据流分析技术。
本文实现了一个分析工具的原型,它将单链表可达性分析技术、空指针解引用分析技术整型变量取值范围分析技术整合到一起,且允许使用者进行人工干预。
本文主要解决了如下问题:
一是怎样对各种不同程序的性质进行描述。
现有的数据流分析技术关注的程序性质各不相同,为了能够更好地实现综合分析能力,我们需要对程序的性质做统一的描述。
本文通过对程序性质的深入分析,使用带有递归函数的逻辑公式表示程序性质。
在清晰表达程序逻辑性质的基础上,工具还有力地维护了各个性质之间的依赖关系,从而更加方便用户的理解。
二是怎样使不同的分析技术相互利用它们的分析结果。
在实现了对程序性质的统一描述后,本文决定以控制流图作为共享的核心数据结构,并通过引入程序点的概念将程序性质以统一的方式存贮。
工具中还提供了对程序性质进行增删改操作的接口,各个分析技术在分析时能够提取已有的程序性质,并且在分析完成后回写分析得到的性质,真正实现了几种不同分析技术共享程序性质的目标。
三是怎样让使用者能更加方便地实现对分析过程的干预。
在实现数据流分析工具之间的交互后,为了让使用者能够更好地干预和指导数据流分析的过程,本文设计了用户和工具之间的一些交互功能。
在数据流分析的过程中,用户通过补充关键信息可以更好地发挥工具自动化分析的能力。
关键词:
数据流分析、程序验证、整型变量取值范围分析、空指针解引用分析、单链表可达性分析。
中图分类号:
TP311.5
Abstract
Intheprocessofprogramverification,peopleareverymuchhopetobeabletogetsomeinformationautomaticallytoimprovetheefficiencyofproof.Dataflowanalysisisatypicalstaticprogramanalysismethod.Applicationofitsanalysismethodtocodeverificationisagoodchoice.Butmostoftheexistingdatastreamanalysistechnologyisfullyautomatedanalysistechnology,userscannotinterfereintheanalysisprocess,cannotguidetheprocessofdataflowanalysisbysomekeyinformation,whichhindersthedataflowanalysistechnologytoplayagreaterroleincodeverification,andexistingdataflowanalysistechniquesarerelativelyisolated,cannotbeusedinotherdataflowanalysistechniques.Inordertomakefulluseofthecapabilityofdataflowanalysisintheprocessofinteractivecodeverification,weshouldmakethedataflowanalysistechnologytocommunicatewitheachother,andallowtheusertoperformmanualinterventiononthekeypoints.
Inthispaper,weanalyzethecapabilityofdatastreamanalysisininteractivecodeverification,andproposeasetofpracticalmethodsandplatformstointegratedifferentdatastreamanalysistechniques.Inthispaper,therealizationoftheprototypeofatoolfortheanalysis,itwillsinglelinkedlistreachabilityanalysistechnology,integervariablevaluerangeanalysistechnology,nullpointerdereferenceanalysistechnologytogether,andallowstheusertodomanualintervention.Wedemonstratetheeffectivenessofthisworkintwocases.Thispapermainlysolvesthefollowingproblems:
howtodescribethenatureofavarietyofprocedures.Theexistingdatastreamanalysistechnologyisconcernedwiththenatureoftheprogram,inordertobetterachievethecomprehensiveanalysisability,weneedtodoaunifieddescriptionofthenatureoftheprogram.Inthispaper,weanalyzethenatureoftheprogrambyusingthelogicalformulaofrecursivefunctions.Onthebasisoftheclearexpressionofthenatureoftheprogramlogic,thetoolalsohastheabilitytomaintainthedependencebetweenthevariousproperties,whichismoreconvenientfortheusertounderstand.
howtomakedifferentanalysistechniquestouseeachother'
sanalysisresults.Aftertherealizationoftheunityofthenatureoftheprogram,thispaperdecidestousethecontrolflowgraphasthecoredatastructure,andtostoretheprogrampropertiesinaunifiedwaythroughtheintroductionoftheconceptofprogrampoint.Toolalsoprovidestheinterfaceofprogrampropertiesadditionsanddeletionstotheoperation,eachanalysistechniqueintheanalysistoextractprogrampropertiesofexisting,andanalysisafterthecompletionofthewritebackanalysisofnature,trulyrealizetheseveraldifferentanalysistechniquessharethegoalofprogramproperties.
howtomakeusersmoreconvenienttoachieveth
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据流 分析 程序 验证 方面 原理 实现