Fast Graph Simplification for Interleaved-Dyck Reachability

IF 1.5 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING ACM Transactions on Programming Languages and Systems Pub Date : 2022-05-27 DOI:https://dl.acm.org/doi/full/10.1145/3492428
Yuanbo Li, Qirun Zhang, Thomas Reps
{"title":"Fast Graph Simplification for Interleaved-Dyck Reachability","authors":"Yuanbo Li, Qirun Zhang, Thomas Reps","doi":"https://dl.acm.org/doi/full/10.1145/3492428","DOIUrl":null,"url":null,"abstract":"<p>Many program-analysis problems can be formulated as graph-reachability problems. Interleaved Dyck language reachability (<span>InterDyck</span>-reachability) is a fundamental framework to express a wide variety of program-analysis problems over edge-labeled graphs. The <span>InterDyck</span> language represents an intersection of multiple matched-parenthesis languages (i.e., Dyck languages). In practice, program analyses typically leverage one Dyck language to achieve context-sensitivity, and other Dyck languages to model data dependencies, such as field-sensitivity and pointer references/dereferences. In the ideal case, an <span>InterDyck</span>-reachability framework should model multiple Dyck languages <i>simultaneously</i>.</p><p>Unfortunately, precise <span>InterDyck</span>-reachability is undecidable. Any practical solution must over-approximate the exact answer. In the literature, a lot of work has been proposed to over-approximate the <span>InterDyck</span>-reachability formulation. This article offers a new perspective on improving both the precision and the scalability of <span>InterDyck</span>-reachability: we aim at simplifying the underlying input graph <i>G</i>. Our key insight is based on the observation that if an edge is not contributing to any <span>InterDyck</span>-paths, we can safely eliminate it from <i>G</i>. Our technique is orthogonal to the <span>InterDyck</span>-reachability formulation and can serve as a pre-processing step with any over-approximating approach for <span>InterDyck</span>-reachability. We have applied our graph simplification algorithm to pre-processing the graphs from a recent <span>InterDyck</span>-reachability-based taint analysis for Android. Our evaluation of three popular <span>InterDyck</span>-reachability algorithms yields promising results. In particular, our graph-simplification method improves both the scalability and precision of all three <span>InterDyck</span>-reachability algorithms, sometimes dramatically.</p>","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"1 1","pages":""},"PeriodicalIF":1.5000,"publicationDate":"2022-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Transactions on Programming Languages and Systems","FirstCategoryId":"94","ListUrlMain":"https://doi.org/https://dl.acm.org/doi/full/10.1145/3492428","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Many program-analysis problems can be formulated as graph-reachability problems. Interleaved Dyck language reachability (InterDyck-reachability) is a fundamental framework to express a wide variety of program-analysis problems over edge-labeled graphs. The InterDyck language represents an intersection of multiple matched-parenthesis languages (i.e., Dyck languages). In practice, program analyses typically leverage one Dyck language to achieve context-sensitivity, and other Dyck languages to model data dependencies, such as field-sensitivity and pointer references/dereferences. In the ideal case, an InterDyck-reachability framework should model multiple Dyck languages simultaneously.

Unfortunately, precise InterDyck-reachability is undecidable. Any practical solution must over-approximate the exact answer. In the literature, a lot of work has been proposed to over-approximate the InterDyck-reachability formulation. This article offers a new perspective on improving both the precision and the scalability of InterDyck-reachability: we aim at simplifying the underlying input graph G. Our key insight is based on the observation that if an edge is not contributing to any InterDyck-paths, we can safely eliminate it from G. Our technique is orthogonal to the InterDyck-reachability formulation and can serve as a pre-processing step with any over-approximating approach for InterDyck-reachability. We have applied our graph simplification algorithm to pre-processing the graphs from a recent InterDyck-reachability-based taint analysis for Android. Our evaluation of three popular InterDyck-reachability algorithms yields promising results. In particular, our graph-simplification method improves both the scalability and precision of all three InterDyck-reachability algorithms, sometimes dramatically.

查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
交错堤岸可达性的快速图化简
许多程序分析问题可以表述为图形可达性问题。交错Dyck语言可达性(interdyck -可达性)是一种基本框架,用于表达各种边标记图上的程序分析问题。InterDyck语言表示多种匹配括号语言(即Dyck语言)的交集。在实践中,程序分析通常利用一种Dyck语言来实现上下文敏感性,并利用其他Dyck语言来建模数据依赖性,例如字段敏感性和指针引用/解引用。在理想情况下,一个interdyck可达性框架应该同时对多种Dyck语言建模。不幸的是,准确的跨桥可达性是无法确定的。任何实际的解决方案都必须过于接近确切的答案。在文献中,已经提出了大量的工作,以过度逼近堤岸间可达性公式。本文提供了一个新的视角提高精度和可伸缩性InterDyck-reachability:我们旨在简化底层输入图g .关键的见解是基于这样的观察:如果没有导致任何InterDyck-paths优势,我们可以安全地从g .消除技术是正交InterDyck-reachability配方,可以作为预处理步骤与任何over-approximating InterDyck-reachability方法。我们已经将我们的图形简化算法用于预处理最近基于interdyck可达性的Android污染分析的图形。我们对三种流行的dyck可达性算法的评估产生了有希望的结果。特别是,我们的图简化方法提高了所有三种interdyck可达性算法的可伸缩性和精度,有时甚至是显著的。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems 工程技术-计算机:软件工程
CiteScore
3.10
自引率
7.70%
发文量
28
审稿时长
>12 weeks
期刊介绍: ACM Transactions on Programming Languages and Systems (TOPLAS) is the premier journal for reporting recent research advances in the areas of programming languages, and systems to assist the task of programming. Papers can be either theoretical or experimental in style, but in either case, they must contain innovative and novel content that advances the state of the art of programming languages and systems. We also invite strictly experimental papers that compare existing approaches, as well as tutorial and survey papers. The scope of TOPLAS includes, but is not limited to, the following subjects: language design for sequential and parallel programming programming language implementation programming language semantics compilers and interpreters runtime systems for program execution storage allocation and garbage collection languages and methods for writing program specifications languages and methods for secure and reliable programs testing and verification of programs
期刊最新文献
Proving Correctness of Parallel Implementations of Transition System Models CFLOBDDs: Context-Free-Language Ordered Binary Decision Diagrams Adversities in Abstract Interpretation: Accommodating Robustness by Abstract Interpretation: ACM Transactions on Programming Languages and Systems: Vol 0, No ja Homeostasis: Design and Implementation of a Self-Stabilizing Compiler Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1