首页> 外文OA文献 >Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java
【2h】

Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java

机译:Boomerang:针对Java的需求驱动流和上下文敏感指针分析

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Many current program analyses require highly precise pointerinformation about small, tar- geted parts of a given program. Thismotivates the need for demand-driven pointer analyses that computeinformation only where required. Pointer analyses generally computepoints-to sets of program variables or answer boolean aliasqueries. However, many client analyses require richer pointerinformation. For example, taint and typestate analyses often need toknow the set of all aliases of a given variable under a certaincalling context. With most current pointer analyses, clients mustcompute such information through repeated points-to or alias queries, increasing complexity and computation time for them.This paper presents Boomerang, a demand-driven, flow-, field-, andcontext-sensitive pointer analysis for Java programs. Boomerangcomputes rich results that include both the possible allocation sites of a given pointer (points-to information) and all pointers that can point to those allocation sites (alias information). For increased precision and scalability, clients can query Boomerang with respect to particular calling contexts of interest.Our experiments show that Boomerang is more precise than existingdemand-driven pointer analyses. Additionally, using Boomerang, thetaint analysis FlowDroid issues up to 29.4x fewer pointer queriescompared to using other pointer analyses that return simpler pointerinfor- mation. Furthermore, the search space of Boomerang can besignificantly reduced by requesting calling contexts from the clientanalysis.
机译:当前许多程序分析都需要有关给定程序的小目标区域的高精度指针信息。这激发了对需求驱动的指针分析的需求,该需求分析仅在需要时才计算信息。指针通常分析到程序点集或布尔布尔查询的计算点。但是,许多客户端分析需要更丰富的指针信息。例如,污点和类型状态分析通常需要知道在特定调用上下文下给定变量的所有别名的集合。使用最新的指针分析,客户端必须通过重复的指向指针或别名的查询来计算此类信息,从而增加了它们的复杂性和计算时间。本文介绍了Boomerang,这是一种需求驱动的,对流,字段和上下文敏感的Java指针分析程式。 Boomerang计算丰富的结果,其中既包括给定指针的可能分配位置(指向信息),又包括可以指向那些分配位置的所有指针(别名信息)。为了提高准确性和可伸缩性,客户可以针对感兴趣的特定调用上下文查询Boomerang。我们的实验表明,Boomerang比现有的需求驱动指针分析更为精确。此外,与使用其他返回更简单指针信息的指针分析相比,使用Boomerang进行的污点分析FlowDroid最多可以将指针查询减少29.4倍。此外,通过从客户端分析请求调用上下文,可以显着减少Boomerang的搜索空间。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号