Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1765931.1765948guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Scaling Java points-to analysis using SPARK

Published: 07 April 2003 Publication History

Abstract

Most points-to analysis research has been done on different systems by different groups, making it difficult to compare results, and to understand interactions between individual factors each group studied. Furthermore, points-to analysis for Java has been studied much less thoroughly than for C, and the tradeoffs appear very different. We introduce SPARK, a flexible framework for experimenting with points-to analyses for Java. SPARK supports equality- and subset-based analyses, variations in field sensitivity, respect for declared types, variations in call graph construction, off-line simplification, and several solving algorithms. SPARK is composed of building blocks on which new analyses can be based.
We demonstrate SPARK in a substantial study of factors affecting precision and efficiency of subset-based points-to analyses, including interactions between these factors. Our results show that SPARK is not only flexible and modular, but also offers superior time/space performance when compared to other points-to analysis implementations.

References

[1]
Ashes suite collection. http://www.sable.mcgill.ca/software/.
[2]
jEdit: Open source programmer's text editor. http://www.jedit.org/.
[3]
Soot: a Java optimization framework. http://www.sable.mcgill.ca/soot/.
[4]
SPEC JVM98 benchmarks. http://www.spec.org/osg/jvm98/.
[5]
A. Aiken, M. Fähndrich, J. S. Foster, and Z. Su. Atoolkit for constructing type- and constraint-based program analyses. In Types in Compilation, Second International Workshop, TIC '98, volume 1473 of LNCS, pages 78-96, 1998.
[6]
L.O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, University of Copenhagen, May 1994. (DIKU report 94/19).
[7]
D. F. Bacon and P. F. Sweeney. Fast static analysis of C++ virtual function calls. In Proceedings of the 1996 OOPSLA, pages 324-341, 1996.
[8]
M. Das. Unification-based pointer analysis with directional assignments. In Proceedings of PLDI'00, volume 35.5 of ACM Sigplan Notices, pages 35-46, June 2000.
[9]
J. Dean, D. Grove, and C. Chambers. Optimization of object-oriented programs using static class hierarchy analysis. In ECOOP'95--Object-Oriented Programming, 9th European Conference , volume 952 of LNCS, pages 77-101, Aug. 1995.
[10]
A. Diwan, K. S. McKinley, and J. E. B. Moss. Type-based alias analysis. In Proceedings of PLDI'98, pages 106-117, 1998.
[11]
M. Emami, R. Ghiya, and L. J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In Proceedings of PLDI'94, pages 242-256, 1994.
[12]
M. Fähndrich, J. S. Foster, Z. Su, and A. Aiken. Partial online cycle elimination in inclusion constraint graphs. In Proceedings of PLDI'98, pages 85-96, June 1998.
[13]
N. Heintze. Analysis of large code bases: The compile-link-analyze model. http://cm.bell-labs.com/cm/cs/who/nch/cla.ps, 1999.
[14]
N. Heintze and O. Tardieu. Demand-driven pointer analysis. In Proceedings of PLDI'01, pages 24-34, 2001.
[15]
N. Heintze and O. Tardieu. Ultra-fast aliasing analysis using CLA:A million lines of C code in a second. In Proceedings of PLDI'01, volume 36.5 of ACM SIGPLAN Notices, pages 254-263, June 2001.
[16]
M. Hind. Pointer analysis: Haven't we solved this problem yet? In Proceedings of PASTE'01, pages 54-61, June 2001.
[17]
D. Liang, M. Pennings, and M. J. Harrold. Extending and evaluating flow-insensitive and context-insensitive points-to analyses for Java. In Proceedings of PASTE'01, pages 73-79, 2001.
[18]
P. Pominville, F. Qian, R. Vallée-Rai, L. Hendren, and C. Verbrugge. A framework for optimizing Java using attributes. In Compiler Construction (CC 2001), volume 2027 of LNCS, pages 334-554, 2001.
[19]
A. Rountev and S. Chandra. Off-line variable substitution for scaling points-to analysis. In Proceedings of PLDI'00, pages 47 - 56, Jun 2000.
[20]
A. Rountev, A. Milanova, and B. G. Ryder. Points-to analysis for Java using annotated constraints. In Proceedings of the 2001 OOPSLA, pages 43-55, 2001.
[21]
M. Shapiro and S. Horwitz. Fast and accurate flow-insensitive points-to analysis. In Conference Record of 24th POPL '97, pages 1-14, Jan. 1997.
[22]
B. Steensgaard. Points-to analysis in almost linear time. In Conference Record of 23rd POPL'96, pages 32-41, Jan. 1996.
[23]
Z. Su, M. Fähndrich, and A. Aiken. Projection merging: reducing redundancies in inclusion constraint graphs. In Proceedings of the 27th POPL'00, pages 81-95, 2000.
[24]
V. Sundaresan, L. Hendren, C. Razafimahefa, R. Vallée-Rai, P. Lam, E. Gagnon, and C. Godin. Practical virtual method call resolution for Java. In Proceedings of the 2000 OOPSLA, pages 264-280, 2000.
[25]
R. E. Tarjan. Efficiency of a good but not linear set union algorithm. Journal of the ACM (JACM), 22(2):215-225, 1975.
[26]
R. Vallée-Rai, E. Gagnon, L. J. Hendren, P. Lam, P. Pominville, and V. Sundaresan. Optimizing Java bytecode using the Soot framework: Is it feasible? In Compiler Construction (CC 2000), volume 1781 of LNCS, pages 18-34, 2000.
[27]
J. Whaley and M. Lam. An efficient inclusion-based points-to analysis for strictly-typed languages. In Static Analysis 9th International Symposium, SAS 2002, volume 2477 of LNCS, pages 180-195, 2002.

Cited By

View all
  • (2024)Do Android App Developers Accurately Report Collection of Privacy-Related Data?Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering Workshops10.1145/3691621.3694949(176-186)Online publication date: 27-Oct-2024
  • (2024)TIPS: Tracking Integer-Pointer Value Flows for C++ Member Function PointersProceedings of the ACM on Software Engineering10.1145/36607791:FSE(1609-1631)Online publication date: 12-Jul-2024
  • (2024)Improving Logic Bomb Identification in Android Apps via Context-Aware Anomaly DetectionIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2024.335897921:5(4735-4753)Online publication date: 1-Sep-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
CC'03: Proceedings of the 12th international conference on Compiler construction
April 2003
335 pages
ISBN:3540009043
  • Editor:
  • Görel Hedin

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 07 April 2003

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Do Android App Developers Accurately Report Collection of Privacy-Related Data?Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering Workshops10.1145/3691621.3694949(176-186)Online publication date: 27-Oct-2024
  • (2024)TIPS: Tracking Integer-Pointer Value Flows for C++ Member Function PointersProceedings of the ACM on Software Engineering10.1145/36607791:FSE(1609-1631)Online publication date: 12-Jul-2024
  • (2024)Improving Logic Bomb Identification in Android Apps via Context-Aware Anomaly DetectionIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2024.335897921:5(4735-4753)Online publication date: 1-Sep-2024
  • (2023)IFDS-based Context Debloating for Object-Sensitive Pointer AnalysisACM Transactions on Software Engineering and Methodology10.1145/357964132:4(1-44)Online publication date: 27-May-2023
  • (2023)Variational Study of the Impact of Call Graphs on Precision of Android Taint AnalysisProceedings of the 16th Innovations in Software Engineering Conference10.1145/3578527.3578545(1-5)Online publication date: 23-Feb-2023
  • (2022)ZS3: Marrying Static Analyzers and Constraint Solvers to Parallelize Loops in Managed RuntimesProceedings of the 32nd Annual International Conference on Computer Science and Software Engineering10.5555/3566055.3566082(213-220)Online publication date: 15-Nov-2022
  • (2022)Mining Android API Usage to Generate Unit Test Cases for Pinpointing Compatibility IssuesProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3561151(1-13)Online publication date: 10-Oct-2022
  • (2022)Jasmine: A Static Analysis Framework for Spring Core TechnologiesProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556910(1-13)Online publication date: 10-Oct-2022
  • (2021)Compacting points-to sets through object clusteringProceedings of the ACM on Programming Languages10.1145/34855475:OOPSLA(1-27)Online publication date: 15-Oct-2021
  • (2021)The impact of tool configuration spaces on the evaluation of configurable taint analysis for AndroidProceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3460319.3464823(466-477)Online publication date: 11-Jul-2021
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media