Abstract
Every running thread has its own thread context that consists of values of the fields of the target thread object. To consider the thread context in understanding the behaviors of concurrently running threads, we propose a thread-sensitive interprocedural analysis for multithreaded Java applications. Our thread-sensitive analysis exploits thread-context information, instead of the conventional calling-context information, for computing dataflow facts holding at a statement. The thread-sensitive analysis is highly effective in distinguishing dataflow facts for different threads, producing more precise dataflow information than non-thread-sensitive analysis. The analysis is also generally much more efficient than conventional (calling) context-sensitive analysis. It uses the target thread objects at a thread start site to distinguish different thread contexts. We give a thread-sensitive points-to analysis as an instance of thread-sensitive analysis. We have implemented it and give some experimental results. We discuss several possible applications of the analysis.
This Research was supported by the Sookmyung Women’s University Research Grants 2004.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Andersen, L.: A program analysis and specialization for the C programming language. PhD. Thesis, DIKU (1994)
Blanchet, B.: Escape analysis for object-oriented languages: Applications to Java. In: Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 20–34 (1999)
Choi, J.-D., Gupta, M., Serrano, M., Sreedhar, V.C., Midkiff, S.: Escape analysis for Java. In: Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (1999)
Choi, J.-D., Lee, K., Loginov, A., O’Callahan, R., Sarkar, V., Sridharan, M.: Efficient and precise datarace detection for multithreaded object-oriented programs. In: Proceedings of ACM Conference on Programming Languages Design and Implementation, pp. 258–269 (2002)
Heintze, N.: Set-based program analysis. PhD. Thesis, Carnegie Mellon University (1992)
Heintze, N., Tardieu, O.: Ultra-fast aliasing analysis using CLA: A million lines of C code. In: Proceedings of ACM Conference on Programming Languages Design and Implementation, pp. 85–96 (1998)
Lea, D.: Concurrent programming in Java: Design principles and patterns. Addison-Wesley, Reading (2000)
Rountev, A., Milanova, A., Ryder, B.G.: Points-to analysis for Java using annotated constraints. In: Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (2001)
Salcianu, A., Rinard, M.: Pointer and escape analysis for multithreaded programs. In: Proceedings of ACM Symposium on Principles and Practice of Parallel Programming, pp. 12–23 (2001)
Ruf, E.: Effective synchronization removal for Java. In: Proceedings of ACM Conference on Programming Language Design and Implementation, pp. 208–218 (2000)
Steensgaard, B.: Points-to analysis in almost linear time. In: Proceedings of ACM Symposium on Principles of Programming Languages, pp. 32–41 (1996)
Whaley, J., Linard, M.: Compositional pointer and escape analysis for Java programs. In: Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (1999)
Whaley, J., Lam, M.S.: An efficient inclusion-based points-to analysis for strictlytyped languages. In: Proceedings of Static Analysis Symposium (2002)
Whaley, J.: Joeq: A Virtual Machine and Compiler Infrastructure. In: Proceedings of ACM SIGPLAN Workshop on Interpreters, Virtual Machines and Emulators (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chang, BM., Choi, JD. (2004). Thread-Sensitive Points-to Analysis for Multithreaded Java Programs. In: Aykanat, C., Dayar, T., Körpeoğlu, İ. (eds) Computer and Information Sciences - ISCIS 2004. ISCIS 2004. Lecture Notes in Computer Science, vol 3280. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30182-0_95
Download citation
DOI: https://doi.org/10.1007/978-3-540-30182-0_95
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23526-2
Online ISBN: 978-3-540-30182-0
eBook Packages: Springer Book Archive