跳到主要内容
文章

需求驱动的指针分析

出版:2001年5月1日 出版历史
  • 获取引文提醒
  • 摘要

    已知的指针分析算法是“全局的”,即它们对程序或程序组件执行详尽的分析。在本文中,我们介绍了一种需求驱动的指针分析方法。具体来说,我们描述了需求驱动的流敏感、基于子类、上下文敏感的分析点。给定一个指针变量列表(查询),我们的分析只需执行足够的计算来确定这些查询变量的点集。利用穷举分析和需求驱动分析的演绎可达性公式,我们证明了我们的算法是正确的。我们还表明,我们的分析是最优的,因为它不会做比必要的更多的工作。我们通过实现需求驱动的点到分析来说明我们的分析的可行性和效率,以计算带有函数指针的C程序的调用图。我们的系统的性能在不同的基准测试中有很大差异,主要因素是必须计算多少指向图的点才能确定调用粒度。对于一些基准测试,只需要点到图的一小部分(例如pouray emacs公司海湾合作委员会)这里我们看到了10倍以上的加速。对于其他基准(例如。粗麻布跛行),我们需要计算大多数(>95%)的点到图,而这里的需求驱动算法要慢得多,因为使用需求驱动算法计算整个点到图的速度很慢。

    工具书类

    [1]
    A.Deutsch,“指针的跨过程May-Alias分析:Beyond-k限制”,PLDI 1994。
    [2]
    M.Emami、R.Ghiya和L.Hendren,“上下文敏感的跨过程点——在功能指针存在下的分析”,PLDI 1994。
    [3]
    M.Fahndrich、J.Foster、Z.Su和A.Aiken,“包含约束图中的部分在线循环消除”,PLDI 1998。
    [4]
    A.Rountev和S.Chandra,“标度点的离线变量替代——分析”,PLDI 2000。
    [5]
    Z.Su、M.Fahndrich和A.Aiken,“投影合并:减少包含约束图中的冗余”,POPL 2000。
    [6]
    L.Andersen,“C编程语言的程序分析和专业化”,博士。论文,哥本哈根大学DIKU,1994年5月,DIKU报告94/19。
    [7]
    B.Steensgaard,“几乎线性时间内的分析点”,POPL 1996。
    [8]
    M.Shapiro和S.Horwitz,“快速准确的流量敏感点分析”,POPL 1997。
    [9]
    M.Das,“基于方向分配的统一指针分析”,PLDI 2000。
    [10]
    E.Ruf,“重新考虑上下文敏感别名分析”,PLDI 1995年。
    [11]
    J.Foster、M.Fahndrich和A.Aiken,“C分析中的多晶与单晶流敏点”,SAS 2000。
    [12]
    E.Duesterwald、R.Gupta和M.Soffa,“跨过程数据流的需求驱动计算”,POPL 1995。
    [13]
    S.Chandra、N.Heintze、D.MacQueen、D.Oliva和M.Siff,“ckit:ML中的可扩展C前端”,可用作SML/NJ库。
    [14]
    “编程语言-C”,ISO/IEC 9899:1990,国际标准,1990年。
    [15]
    N.Heintze,“大型代码库的分析:编译链接分析模型”,未发表的报告,1999年11月。
    [16]
    N.Heintze,O.Tardieu,“使用CLA的超快速指针分析:每秒一百万行C代码”,PLDI 2001(本卷)。

    引用人

    查看全部
    • (2024)Seneca:Java对象反序列化的基于Taint的调用图构造美国计算机学会程序设计语言会议录10.1145/36498518:OOPSLA1(1125-1153)在线发布日期:2024年4月29日
    • (2023)VulPathsFinder:一种在基于CPG的PHP应用程序中查找漏洞路径的静态方法应用科学10.3390/app1316924013:16(9240)在线发布日期:2023年8月14日
    • (2023)混合内联:一种用于组合和上下文敏感静态分析的框架第32届ACM SIGSOFT软件测试与分析国际研讨会论文集10.1145/3597926.3598042(114-126)在线发布日期:2023年7月12日
    • 显示更多引用者

    建议

    评论

    信息和贡献者

    问询处

    发布于

    封面图片ACM SIGPLAN注意事项
    ACM SIGPLAN通知 第36卷第5期
    2001年5月
    330页
    国际标准编号:0362-1340
    EISSN公司:1558-1160
    内政部:10.1145/381694
    期刊目录
    • 封面图片ACM会议
      PLDI’01:ACM SIGPLAN 2001年编程语言设计和实现会议记录
      2001年6月
      331页
      国际标准图书编号:1581134142
      内政部:10.1145/378795
    如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布、在服务器上发布或重新分发到列表,需要事先获得特定许可和/或收取费用。从请求权限[电子邮件保护]

    出版商

    计算机协会

    美国纽约州纽约市

    出版历史

    出版:2001年5月1日
    在SIGPLAN中发布体积36,问题5

    检查更新

    限定符

    • 第条

    贡献者

    其他指标

    文献计量学和引文

    文献计量学

    文章指标

    • 下载次数(过去12个月)68
    • 下载次数(最近6周)8

    其他指标

    引文

    引用人

    查看全部
    • (2024)Seneca:Java对象反序列化的基于Taint的调用图构造美国计算机学会程序设计语言会议录10.1145/36498518:OOPSLA1(1125-1153)在线发布日期:2024年4月29日
    • (2023)VulPathsFinder:基于CPG的PHP应用程序漏洞路径静态查找方法应用科学10.3390页/第13169240页13:16(9240)在线发布日期:2023年8月14日
    • (2023)混合内联:一种用于组合和上下文敏感静态分析的框架第32届ACM SIGSOFT软件测试与分析国际研讨会论文集10.1145/3597926.3598042(114-126)在线发布日期:2023年7月12日
    • (2023)基于整数线性规划的单源单目标交错堤防可达性美国计算机学会程序设计语言会议录10.1145/35712287:POPL(1003-1026)在线发布日期:2023年1月11日
    • (2023)用指针分析检测人机对编程中的安全漏洞2023年第27届国际复杂计算机系统工程会议(ICECCS)10.1109/ICECCS59891.2023.00027(152-156)在线发布日期:2023年6月14日
    • (2023)DCLINK:在FinTech系统中桥接数据约束更改和实现2023年第38届IEEE/ACM国际自动化软件工程会议(ASE)10.1109页/页56229.2023.00170(914-925)在线发布日期:2023年9月11日
    • (2022)高级合成中精细颗粒指针合成的一个实例ACM电子系统设计自动化汇刊10.1145/349143027:4(1-26)在线发布日期:2022年3月8日
    • (2021)序列化软件调用图构造第十届ACM SIGPLAN程序分析最新技术国际研讨会会议记录10.1145/3460946.3464319(37-42)在线发布日期:2021年6月22日
    • (2020)Salsa:序列化特性的静态分析第22届ACM SIGPLAN类Java程序形式化技术国际研讨会会议记录10.1145/3427761.3428343(18-25)在线发布日期:2020年7月23日
    • (2019)基于自适应上下文敏感分析的时间堆安全性过引用验证静态分析10.1007/978-3-030-32304-2_4(48-72)在线发布日期:2019年10月2日
    • 显示更多引用者

    视图选项

    获取访问权限

    登录选项

    完全访问权限

    查看选项

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用联机查看电子阅读器.

    电子阅读器

    媒体

    数字

    其他

    桌子

    分享

    分享

    共享此出版物链接

    在社交媒体上分享