arrow
返回

Understanding and Analyzing Java Reflection

delete2019-02-26
delete33
delete
OA
AI
Y
Yue Li *
T
Tian Tan
J
Jingling Xue
DOI:10.1145/3295739delete
delete原文链接
delete分享
delete收藏
查看原文
摘要

摘要

En 中文
Java reflection has been widely used in a variety of applications and frameworks. It allows a software system to inspect and change the behaviour of its classes, interfaces, methods, and fields at runtime, enabling the software to adapt to dynamically changing runtime environments. However, this dynamic language feature imposes significant challenges to static analysis, because the behaviour of reflection-rich software is logically complex and statically hard to predict. As a result, existing static analysis tools either ignore reflection or handle it partially, resulting in missed, important behaviours, i.e., unsound results. Therefore, improving or even achieving soundness in static reflection analysis-an analysis that infers statically the behaviour of reflective code-will provide significant benefits to many analysis clients, such as bug detectors, security analyzers, and program verifiers. In this article, we provide a comprehensive understanding of Java reflection through examining its underlying concept, API, and real-world usage, and, building on this, we introduce a new static approach to resolving Java reflection effectively in practice. We have implemented our reflection analysis in an open-source tool, called Solar, and evaluated its effectiveness extensively with large Java programs and libraries. Our experimental results demonstrate that Solar is able to (1) resolve reflection more soundly than the state-of-the-art reflection analyses; (2) automatically and accurately identify the parts of the program where reflection is resolved unsoundly or imprecisely; and (3) guide users to iteratively refine the analysis results by using lightweight annotations until their specific requirements are satisfied.
Keyword:
Java reflection
static analysis
reflection analysis
points-to analysis
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
论文数:
1.2K
被引数:
3.4K

机构

暂无机构信息
引用论文

引用论文

err分享
err收藏
Allosteric binding of amino alcohols and diamines by dimeric zinc biladienone
err2009-02-01
err0
PREAI
errTomofumi Shimizu; Naomi Asano; Tadashi Mizutani; Ho-Chol Chang; Susumu Kitagawa
err分享
err收藏
Evaluation of Pediatric Cadaver Kidneys Transplanted into Adult Recipients Receiving Cyclosporine
err1989-11-01
err0
PREAI
errClayton H. Hudnall; Ernest E. Hodge; Arthur S. Centeno; Judith J. Nicastro-Holzmann; Donna Torbet; Carol Gomez; Lynn H.W. Banowsky
err分享
err收藏
Magnetic domain wall creep in the presence of an effective interlayer coupling field
err2008-11-01
err0
PREAI
errP.J. Metaxas; J.P. Jamet; J. Ferré; B. Rodmacq; B. Dieny; R.L. Stamps
err分享
err收藏
err分享
err收藏
err分享
err收藏
学者 查看更多内容