35、静态软件分析中的增量式虚假路径消除

静态软件分析中的增量式虚假路径消除

1. 引言

在大型工业软件包中查找漏洞的一种技术是静态程序分析。虽然它已被证明具有可扩展性和快速性,但通常会在不同程度上受到潜在误报的影响。主要原因在于,与软件模型检查不同,静态程序分析通常在相当抽象的层面上进行,例如没有任何数据抽象的控制流图(CFG)。因此,程序的语法模型是一种粗略的抽象,报告的错误路径可能是虚假的,即它们可能与具体程序中的实际运行情况不对应。

本文提出了一种增量算法,该算法会自动调查错误路径并检查它们是否不可行。为此,以区间方程形式存在的语义信息会自动添加到之前纯粹的语法模型中。这种语义信息仅在检测到潜在漏洞(即生成反例)后才会被纳入。这既确保了程序无漏洞部分的可扩展性和速度,又允许在发现漏洞后进行更深入的挖掘。

反例的可行性通过在区间域上进行约束求解来分析,即给定路径内所有变量的可能范围。如果相应方程系统的最小解为空,则反例路径是虚假的。导致空解的方程子集称为冲突。在第二步中,我们通过一个有限观察器来细化语法模型,该观察器排除所有产生相同冲突的路径。这些步骤会迭代应用,直到找不到新的反例,或者找到一个无法证明为虚假的反例。

2. 基本定义和概念
2.1 标记转换系统

本文使用标记转换系统(LTS)来描述抽象程序的语义。LTS 由 (S, S0, A, R, F) 定义,其中 S 是状态集,S0 ⊆ S 是初始状态的子集,A 是动作集,R ⊆ S×A×S 是转换关系,每个转换都用动作 a ∈ A 标记,F ⊆ S 是最终状态集。如果对于每个状态 s ∈ S 和动作 a ∈ A,最多只有一个后继状态使得 (s, a, s′) ∈ R,则该 LTS 是确定性的

【飞机能量-机动性(E-M)特性】飞机评估的最大转弯速度(即机动速度)、最大可持续转弯速度和最大可持续载荷系数对应的真空速度(Matlab代码实现)内容概要:本文档主要围绕飞机能量-机动性(E-M)特性展开,重点研究了飞机评估中的最大转弯速度(即机动速度)、最大可持续转弯速度以及最大可持续载荷系数对应的真空速度,并提供了基于Matlab的代码实现方法。内容涵盖飞行力学中的关键性能指标计算,结合理论分析与编程仿真,帮助理解飞机在不同飞行状态下的机动能力边界。此外,文档还涉及大量与航空航天、无人机控制、路径规划、电力系统优化、信号处理等相关课题的Matlab/Simulink仿真实例,展示了其在多领域科研中的广泛应用。; 适合人群:具备一定航空工程或自动化背景,熟悉Matlab编程,从事飞行器设计、控制算法开发或相关科研工作的研究生、工程师及科研人员。; 使用场景及目标:①用于飞机机动性能分析与仿真,掌握E-M图的核心构建方法;②通过Matlab代码实现关键飞行参数的计算,支撑飞行器性能评估与控制系统设计;③作为教学与科研参考资料,辅助开展航空航天领域的建模与仿真工作。; 阅读建议:建议读者结合飞行力学基础知识,逐步运行并调试所提供的Matlab代码,深入理解各项性能参数的物理意义与计算逻辑,同时可参考文档中其他相关领域的案例进行拓展学习与交叉应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值