面向自动化模型检测的模型提取工具的设计与实现

来源 :湖南大学 | 被引量 : 0次 | 上传用户:cx313
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机软件日益复杂,如何保证其正确性和可靠性成为十分紧迫的问题。模型检测是一种验证有限状态系统的时序逻辑属性的形式化方法,已经在硬件电路、驱动程序和安全协议等领域获得了巨大的成功。应用模型检测技术到高级程序设计语言实现的系统的难点是提取抽象模型,通常的办法是手工构造。然而这个方法存在一些不足,如成本过高,易引入建模错误等,因此从源代码中直接提取验证模型存在强烈的实际需求。贝尔实验室开发的SPIN是优秀的模型检测工具,其建模语言是PROMELA,而C语言是应用最广泛的程序设计语言之一,因此本文的主要研究内容定位于ANSI-C程序的模型提取技术,从而达到使用SPIN自动化模型检测C程序的目的。本文设计了一套对ANSI-C程序进行模型提取的方法,较好地处理了C的大部分语言特性,特别是几种复杂的结构,比如递归函数、枚举类型和指针等。并开发了一个模型提取工具C2Spin。从功能上来说,C2Spin分为前端和后端。前端是一个分析器,具有对C源代码进行词法分析和语法分析的功能。后端则是一个转换器,实现了从C代码到PROMELA代码的系统转换。而且,为了减小模型的规模,加快模型提取的速度或者提高模型的执行效率,C2Spin中使用了一些简单的抽象机制和优化技术。C2Spin显著降低了建模的开销。结合C2Spin,SPIN能够自动地检测使用C语言编写的应用程序中的多种错误,比如死锁等性质。作者使用C2Spin进行了一定数量的测试。在实验中,依靠C2Spin生成的模型,我们发现了SPIN4.3.0的一个语义错误,以及Holzmann对两个经典互斥算法的实现中的活锁错误。因此我们认为C2Spin在检测ANSI-C程序方面具有一定的实用价值。
其他文献
霍女士是我的一位好友,今年34岁。两年前,她被查出患了子宫肌瘤。一开始,她在医生的建议下使用药物进行治疗,病情控制得不错。当她准备进行子宫肌瘤切除术彻底治疗该病时,医生告诉
大面积烧伤患者通常合并吸入性肺损伤,病死率较高,早期诊断和治疗是救治关键。现将我院2006年8月-2008年8月28例烧伤患者连续胸部X线动态检查情况报告如下。
圆锥绣球是少有的夏季观花木本植物,具有很高的观赏价值。就目前圆锥绣球的繁殖技术包括种子繁殖、扦插、压条、组织培养以及园林应用等方面的研究情况进行了综述,提出了圆锥
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技
营建乡村景观,保护村落环境,恢复村落历史文化遗产,维系基层信仰体系,建立充满活力的和谐乡村关系,是乡村振兴战略建设规划的出发点和归宿。老村庄不应被彻底夷为平地,城市也
目的:探讨高原不同海拔地区大鼠严重烫伤延迟复苏后肾脏组织c-fos蛋白的表达规律及其与肾组织细胞凋亡的关系.方法:雄性Wistar大鼠240只,分别在1517 m和3 848 m两个海拔高度进
<正>苏轼(1037~1101)字子瞻,号"东坡居士",是北宋著名的文学家、书画家、诗人和美食家。他不仅精于诗词,而且对医术也颇有研究。苏轼在《与程正辅书》中曾讲到,有一次他的痔疮
期刊
不久前.一位来自北京的客人找我,他是韩国一家著名企业的销售代表。据我了解,这是一家国际性大企业。他们的保健品行销全世界,很有名望。这位客人告诉我.他们要开拓哈尔滨市场,并且
土壤施肥是保证果树健康生长的关键措施之一,对果树产量及品质具有重要的作用。结合具体的果树施肥生产实践,认识到当前群众在果树施肥中存在的误区,并从实际出发,提出了科学