ACM Home Page
Please provide us with feedback. Feedback
Automatic detection of immutable fields in Java
Full text PdfPdf (301 KB)
Source IBM Centre for Advanced Studies Conference archive
Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research table of contents
Mississauga, Ontario, Canada
Page: 10  
Year of Publication: 2000
Authors
Sara Porat  IBM Research Laboratory in Haifa, Israel
Marina Biberstein  IBM Research Laboratory in Haifa, Israel
Larry Koved  IBM T. J. Watson Research Center, NY
Bilha Mendelson  IBM T. J. Watson Research Center, NY
Sponsors
IBM Canada : IBM Canada
NRC : National Research Council - Canada
Publisher
IBM Press 
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 26,   Citation Count: 10
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  

ABSTRACT

This paper introduces techniques to detect mutability of fields and classes in Java. A variable is considered to be mutable if a new value is stored into it, as well as if any of its reachable variables is mutable. We present a static flow-sensitive analysis algorithm which can be applied to any Java component. The analysis classifies fields and classes as either mutable or immutable. In order to facilitate openworld analysis, the algorithm identifies situations that expose variables to potential modification by code outside the component, as well as situations where variables are modified by the analyzed code. We also present an implementation of the analysis which focuses on detecting mutability of class variables, so as to avoid isolation problems. The implementation incorporates intra- and inter-procedural data-flow analyses and is shown to be highly scalable. Experimental results demonstrate the effectiveness of the algorithms.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
{1} P. S. Almeida. Balloon types: Controlling sharing of state in data types. In M. Aksit and S. Matsuoka, editors, Lecture Notes in Computer Science, volume 1241, pages 32-59, Jyvaskyla, Finland, June 1997. ECOOP'97, 11th European Conference on Object-Oriented Programming.
 
2
 
3
{3} A. Bhowmik and W. Pugh. A secure implementation of Java inner classes. http://www.cs.umd.edu/~pugh/java/#sic.
4
5
6
 
7
{7} CFParse. http://www.alphaworks.ibm.- com/tech/cfparse.
8
9
 
10
{10} D. Detlefs, K. Rustan, M. Leino, G. Nelson, and J.B. Saxe. Extended static checking. Technical Report 159, Compaq Systems Research Center, Palo Alto, CA, December 1998.
11
12
13
 
14
 
15
{15} R. Ghiya and L. Hendren. Putting pointer analysis to work. In Proceedings of the 1994 SIGPLAN Conference On Programming Language Design and Implementation , Orlando, Florida, June 1994.
16
17
 
18
 
19
{19} D. Jackson and M. Rinard. The Future of Software Engineering, chapter The Future of Software Analysis. ACM Press, June 2000.
 
20
{20} T. Jensen, D. Le Métayer, and T. Thorn. Verification of control flow based security policies. In Proceedings of the 20th IEEE Security and Privacy Symposium, Oakland, California, 1999.
 
21
{21} G. Kniesel. Encapsulation = visibility + accessibility. Technical Report TR-96-12, CS Dept., University of Bonn, Germany, 1996.
 
22
{22} G. Kniesel and D. Theisen. JAC - Java with transitive readonly access control. In Proceedings of the Intercontinental Workshop on Aliasing in Object-Oriented Systems , Lisbon, Portugal, June 1999.
 
23
 
24
 
25
 
26
 
27
 
28
 
29
30
 
31
{31} Secure Internet Programming Group at Princeton University. http://www.cs.- princeton.edu/sip/news/april29.html.
 
32
{32} V. Seshadri. IBM High Performance Compiler for Java. AIXpert Magazine, September 1997.
 
33
{33} Toad. http://www.alphaworks.ibm.com/- tech/toad.
34
35

CITED BY  10

Collaborative Colleagues:
Sara Porat: colleagues
Marina Biberstein: colleagues
Larry Koved: colleagues
Bilha Mendelson: colleagues