[发明专利]一种同步语言程序多属性增量模型检测方法在审
申请号: | 202211523760.1 | 申请日: | 2022-11-30 |
公开(公告)号: | CN116089264A | 公开(公告)日: | 2023-05-09 |
发明(设计)人: | 陈哲;方雨瑶 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/72;G06F9/54 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 王慧 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 同步 语言 程序 属性 增量 模型 检测 方法 | ||
本发明公开了一种同步语言程序多属性增量模型检测方法,包括步骤:S1,对同步语言程序进行词法和语法分析,得到抽象语法树,然后将复杂程序转化为仅包含唯一节点、内存深度为1的简单程序;S2,使用程序切片算法删除与待验证属性无关的数据流,删除与待验证属性无关的等式,得到一个化简后的程序;S3,为有界模型检测引擎线程构建基础公式,为归纳法引擎线程构建归纳公式;S4,并行执行有界模型检测引擎线程、归纳法引擎线程和程序抽象引擎线程,并通过消息传递机制控制这些线程之间的同步。本发明能够加快验证速度,从而缓解现有模型检测技术验证速度较慢的问题。
技术领域
本发明涉及同步语言程序模型检测方法,尤其涉及一种同步语言程序多属性增量模型检测方法。
背景技术
随着科技的发展,反应式系统在航空航天、交通、核工业等关键性领域的应用越来越广泛,它能够以确定的时间对其所处的环境做出连续反应,具有时间约束性、可预测性、与外部环境的交互性等。为了方便反应式系统的设计与实现,学术界和工业界共同提出了同步语言,一种新的程序设计语言范式,用于实时嵌入式系统编程。常见的同步语言包括Esterel、Lustre、SIGNAL、SCADE等,其中SCADE语言源于Esterel和Lustre,并在其基础上新增了很多语法结构来简化程序开发。一个SCADE程序由多个节点组成,这里的“节点”类似于命令式程序设计语言中的函数。一个节点由输入数据流、局部数据流、输出数据流组成,这里的“数据流”类似于命令式程序设计语言中的变量。SCADE语言只支持整型、布尔型、实数型的数据流。在SCADE程序中,任何变量和表达式都表示一个由多个时钟上的值所构成的数据流,例如变量x表示数据流(x0,x1,x2,x3,…),其中,xi(0≤i)是变量x在第i个时钟上的值。SCADE中常用的操作符包括:算术运算符(+,-,*,/,div,mod)、布尔运算符(and,or,not)、关系运算符(,=,,=)、条件运算符(if-then-else)、时序运算符(pre,when)。
SCADE等同步语言已经成为航空航天、交通、核工业等领域的事实标准开发语言,已经被广泛应用于实现实时嵌入式系统。由于这些领域对系统的安全性与可靠性要求非常高,因此使用SCADE等同步语言开发的程序必须经过严格的形式化验证(即正确性验证)。为此,学术界和工业界提出了许多验证同步语言程序的模型检测技术,开发了多种基于不同技术的同步语言模型检测器。
早期的同步语言模型检测器主要基于程序翻译技术,将同步语言(源语言)程序翻译成通用模型检测器特有的形式化规约语言(目标语言,例如NuSMV或SPIN的输入语言),然后对翻译得到的形式化规约进行模型检测。这一技术的缺点在于验证能力和可用性较差:由于这一技术不能直接处理同步语言程序,而源语言和目标语言的语义和表达能力不同,使得源语言中的一些结构无法被准确地翻译为目标语言中的结构,导致模型检测器不支持源语言中的一些语言结构,从而限制了工具的验证能力和可用性。
目前的趋势是为同步语言设计专有的模型检测器,使得可以对特有的语言结构进行验证算法优化,从而提高工具的验证能力和可用性。一个代表性的技术是基于命题逻辑可满足性(SAT)求解器的模型检测器。这一技术的缺点在于性能较差:由于SAT求解器只能判定命题逻辑公式是否为可满足的,并不能支持程序中的重要语言结构,例如整数和实数的线性运算、未解释的函数符号、数组等,而为了兼容这些语言结构所设计的算法普遍性能较差,导致整体验证性能较差,从而无法对大型的复杂软件系统进行自动验证。
现有的同步语言程序模型检测器大部分是基于可满足性模理论(SMT)求解器。SMT求解器可以判定一阶逻辑公式在组合背景理论下的可满足性,例如整数和实数的线性运算、未解释的函数符号、数组等。基于SMT求解器,同步语言程序模型检测器的基本流程是:首先将具有复杂语法结构的同步语言程序化简为只包含简单语法结构的同步语言程序,然后使用有界模型检测算法和归纳算法将同步语言程序转化为SMT求解器可求解的一阶逻辑公式,然后调用SMT求解器对公式进行可满足性求解,从而实现对同步语言程序的模型检测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211523760.1/2.html,转载请声明来源钻瓜专利网。