【摘 要】
:
随着代码规模的增大和系统复杂性的增加,软件开发者意识到依靠人工的方式去维护软件系统、排除系统错误已经变得非常困难。形式化方法由于其正确性高、可自动化的特点,已经开
论文部分内容阅读
随着代码规模的增大和系统复杂性的增加,软件开发者意识到依靠人工的方式去维护软件系统、排除系统错误已经变得非常困难。形式化方法由于其正确性高、可自动化的特点,已经开始被应用于大型复杂的软件系统中。模型检验作为一种广泛采用的形式化方法,建立在对系统模型的抽象和对性质规约验证的基础之上,利用算法对模型的性质进行验证;模型检验技术不仅适用于系统开发前的安全性和可靠性验证,也适用于系统后期的维护工作。Coccinelle作为基于模型检验技术的代码搜索和转化工具,主要用于解决系统API库接口变化引发的并行演变。它利用描述语言SmPL描述代码模式,还可以在代码中搜索软件错误和漏洞,提升代码质量。SmPL能够理解C程序中的控制逻辑,因此可以精确地在大规模的程序中搜索C语言的代码块。目前SmPL支持条件语句、循环语句等不同控制结构的模式描述,但是缺少了对do-while循环结构的支持,这会限制SmPL的表达能力,影响程序匹配的准确性。本文针对Coccinelle中缺少的do-while循环结构进行了建模和公式设计。我们通过对C语言代码中的do-while循环结构进行建模,抽象为具有通用性的控制流图。在SmPL中,需要将do-while循环的控制结构转为CTL公式;通过对do-while的语法定义的补充,完成从代码到AST,再到CTL公式的转换过程,从而拓展SmPL的表意能力,完善了Coccinelle的控制流功能。本文的成果主要包括:1.我们对拓展后的Coccinelle进行了测试,包含了功能测试和性能测试,测试结果显示拓展后的Coccinelle可以正确地解析包含复合控制结构和嵌套结构下的do-while循环。2.我们利用拓展后的Coccinelle对Linux内核中的代码模式进行了调研,统计了Linux内核中do-while结构的数量和代码分布情况。还成功地对现实中一个具体的内核问题进行了验证,结果说明本文成果兼具正确性和实用性。
其他文献
背景:IgA肾病(IgA nephropathy,IgAN)发病机制尚不清楚。相关研究发现,超过50%的IgAN终末期肾病患者经肾移植治疗后2年内可复发,且肾脏病理活检发现IgA分子再次沉积于正常移
目的:探讨共载纳米紫杉醇与顺铂的温敏性凝胶药物PDMP(PECE/DDP+MPEG-PCL/PTX)的体内抗肿瘤作用及其联合放疗对宫颈癌异体移植瘤的放疗增敏作用及其相关机制。方法:通过固体
本报告以2018年上合组织青岛峰会12345多语种远程呼叫服务中心的电话口译服务为依据。该项目由中译语通科技股份有限公司组织承办,项目历时约2个月,即2018年5月至6月。在本次实践中,译者以精力分配模式为指导。该理论由丹尼尔·吉尔提出,它强调口译过程中合理分配译员精力的重要性。在交替传译中,译员的精力主要分配在听辨、笔记、记忆和输出环节。他们必须确保完成整场口译所需精力不超过自身能力。通过这一模
目的:研究PES对BGC-823细胞Fascin表达及迁移侵袭的影响,为PES应用于胃癌临床治疗提供理论依据。方法:将低分化的人胃癌BGC-823细胞株在体外置于37℃5%CO2的细胞培养箱将细胞
目的:探讨采用形状记忆合金环抱器和双钢板两种手术方式,在治疗Vancouver B1和C型髋关节置换术后股骨假体周围骨折中临床疗效的比较。方法:回顾性分析湖南师范大学附属长沙医
目的:糖尿病患病率逐年增加,已经成为全球性健康问题。有研究报道,内源性大麻素系统(Endocannabinoid system,ECS)在调节食欲、糖和脂代谢方面均发挥着重要作用。ECS的活化可
转售价格维持协议是一种典型的纵向限制竞争的方式,是上游经营者对下游经营者销售产品价格的限定以及对于其保留该价格控制权的合约1。不同行业之间的垄断模式具有明显的不同
研究背景代谢综合征(MS)是导致慢性肾脏病(CKD)的重要原因之一,CKD最终进展为终末期肾脏病(ESRD),极大增加了国家和人民群众经济负担。但目前对于精确评估无症状或症状较轻的
研究背景:随着时间推移,人的年龄在不断增大,身体机能也在不断的下降。在日常生活中表现最为明显的是下肢肌肉能力的下降。由于这种能力的衰退,导致在突发情况下身体无法做出
预警是事先提醒人们注意与警惕,是预测与评价有机融合的产物,在经济社会领域得到广泛应用。面向经济社会领域的复杂预警,适宜采用黄色预警指数策略,若运用警度测算外推范式时