Heap reference analysis using access graphs

Author:

Khedker Uday P.1,Sanyal Amitabha1,Karkare Amey1

Affiliation:

1. IIT Bombay, Mumbai, India

Abstract

Despite significant progress in the theory and practice of program analysis, analyzing properties of heap data has not reached the same level of maturity as the analysis of static and stack data. The spatial and temporal structure of stack and static data is well understood while that of heap data seems arbitrary and is unbounded. We devise bounded representations that summarize properties of the heap data. This summarization is based on the structure of the program that manipulates the heap. The resulting summary representations are certain kinds of graphs called access graphs . The boundedness of these representations and the monotonicity of the operations to manipulate them make it possible to compute them through data flow analysis. An important application that benefits from heap reference analysis is garbage collection, where currently liveness is conservatively approximated by reachability from program variables. As a consequence, current garbage collectors leave a lot of garbage uncollected, a fact that has been confirmed by several empirical studies. We propose the first ever end-to-end static analysis to distinguish live objects from reachable objects. We use this information to make dead objects unreachable by modifying the program. This application is interesting because it requires discovering data flow information representing complex semantics. In particular, we formulate the following new analyses for heap data: liveness, availability, and anticipability and propose solution methods for them. Together, they cover various combinations of directions of analysis (i.e., forward and backward) and confluence of information (i.e. union and intersection). Our analysis can also be used for plugging memory leaks in C/C++ languages.

Publisher

Association for Computing Machinery (ACM)

Subject

Software

Reference42 articles.

1. Garbage collection and local variable type-precision and liveness in Java virtual machines

2. Escape analysis for object-oriented languages

3. Escape analysis for Java TM

4. Boehm H. 2007. An artificial garbage collection benchmark. http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_bench.html Accessed: September 2007. Boehm H. 2007. An artificial garbage collection benchmark. http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_bench.html Accessed: September 2007.

Cited by 26 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Demand-driven Information Flow Analysis of WebView in Android Hybrid Apps;2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE);2023-10-09

2. Understanding the Impact of Fingerprinting in Android Hybrid Apps;2023 IEEE/ACM 10th International Conference on Mobile Software Engineering and Systems (MOBILESoft);2023-05

3. Memory leak detection using Heap Object Flow Graph (HOFG);16th Innovations in Software Engineering Conference;2023-02-23

4. Inferring Region Types via an Abstract Notion of Environment Transformation;Programming Languages and Systems;2022

5. Eagle;ACM Transactions on Software Engineering and Methodology;2021-10-31

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3