数据流分析在程序验证方面的原理与实现.docx

上传人:b****1 文档编号:1834183 上传时间:2022-10-24 格式:DOCX 页数:66 大小:5.49MB
下载 相关 举报
数据流分析在程序验证方面的原理与实现.docx_第1页
第1页 / 共66页
数据流分析在程序验证方面的原理与实现.docx_第2页
第2页 / 共66页
数据流分析在程序验证方面的原理与实现.docx_第3页
第3页 / 共66页
数据流分析在程序验证方面的原理与实现.docx_第4页
第4页 / 共66页
数据流分析在程序验证方面的原理与实现.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

数据流分析在程序验证方面的原理与实现.docx

《数据流分析在程序验证方面的原理与实现.docx》由会员分享,可在线阅读,更多相关《数据流分析在程序验证方面的原理与实现.docx(66页珍藏版)》请在冰豆网上搜索。

数据流分析在程序验证方面的原理与实现.docx

数据流分析在程序验证方面的原理与实现

硕士专业学位论文

 

数据流分析在程序验证方面的原理与实现

Principleandimplementationofdataflowanalysisinprogramverification

 

作者:

导师:

 

北京交通大学

2018年9月

学位论文版权使用授权书

本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。

特授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索,提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。

同意学校向国家有关部门或机构送交论文的复印件和磁盘。

学校可以为存在馆际合作关系的兄弟高校用户提供文献传递服务和交换服务。

(保密的学位论文在解密后适用本授权说明)

 

学位论文作者签名:

导师签名:

签字日期:

年月日签字日期:

年月日

学校代码:

10004密级:

公开

 

北京交通大学

硕士专业学位论文

 

数据流分析在程序验证方面的原理与实现

Principleandimplementationofdataflowanalysisinprogramverification

 

作者姓名:

学号:

导师姓名:

职称:

教授

工程硕士专业领域:

软件工程学位级别:

硕士

 

北京交通大学

2018年9月

致谢

时光荏苒,岁月如梭。

在北京交通大学三年的研究生生活己经进入了尾声。

在即将毕业之际,回首往昔,一切的辛苦和努力、所有的欢乐和痛苦都己化成了记忆,唯有留下的沉甸甸的知识的积淀和做人的本领,见证了我的成长。

值此论文完成之际,我要向我的母校、导师、同学和所有曾关心帮助过我的人们表示最衷心的感谢。

首先,我要感谢我的研究生导师的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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1