语言simper分析结果_【南大软件分析】lecture15 笔记-CFL Reachability and IFDS

本文介绍了静态分析中的IFDS(Interprocedural, Finite, Distributive, Subset Problem)框架,该框架基于图可达性分析。重点讨论了CFL(Context Free Language)可达性在排除不可行路径,特别是不可实现路径的影响,以提高分析精度。通过在控制流图上标注并定义特定语言来区分可实现路径和不可实现路径,IFDS能够解决全程序的静态分析问题,如到达定义分析。最后提到了Tabulation算法在求解分解图上的可达性中的应用。" 125755784,8165422,CarSim仿真:制动系统建模与控制,"['自动驾驶', '仿真', '软件工具', '模型', '控制理论']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ed068fce7d94b21a44cd543eb95d3313.png

这门课将会讲到静态分析领域一个蛮深入的一门技术——IFDS,而IFDS基于图可达性分析,所以首先会讲如何分析一个控制流图上结点的可达性,由此引入CFL技术(context free language)来分析可达性。

静态分析的几乎所有的研究工作都是在着力提高分析的精度和速度,而降低了分析这两方面的很重要一个因素是控制流中的不可行路径。这门课的CFL技术就是着力于排除不可行路径的影响。

不可行路径Infeasible path

不可行路径指那些控制流图上存在,但在运行时不会被执行的路径,主要有两类,一类是结合程序的语义或者说是业务来讲的,例如对于以下程序:

fun foo(int age) {  
    if (age > 0) {  // 1
        return 1    // 2
    } else {        
        return 0    // 3
    }               
}

结合程序语义或者说是业务,可以确定1 -> 3是一条运行时永远不会被运行的路径,所以该路径为一条不可行路径,但是在更普遍的意义上,也是这节课关注的方面,并不是这些不可行路径,而是另外一类,被称为不可实现的路径(unrealizable p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值