TitleReIm & ReImInfer: Checking and inference of reference immutability and method purity
Publication TypeConference Paper
Year of Publication2012
AuthorsHuang W, Milanova A, Dietl W, Ernst MD
Conference NameOOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications
Pagination879–896
Date or Month PublishedOctober
Conference LocationTucson, AZ, USA
Abstract\emphReference immutability ensures that a reference is not used to modify the referenced object, and enables the safe sharing of object structures. A \emphpure method does not cause side-effects on the objects that existed in the pre-state of the method execution. Checking and inference of reference immutability and method purity enables a variety of program analyses and optimizations. \par We present ReIm, a type system for reference immutability, and ReImInfer, a corresponding type inference analysis. The type system is concise and context-sensitive. The type inference analysis is precise and scalable, and requires no manual annotations. In addition, we present a novel application of the reference immutability type system: method purity inference. \par To support our theoretical results, we implemented the type system and the type inference analysis for Java. We include a type checker to verify the correctness of the inference result. Empirical results on Java applications and libraries of up to 348kLOC show that our approach achieves both scalability and precision.
Downloadshttps://www.cs.rpi.edu/~huangw5/cf-inference/ implementation https://homes.cs.washington.edu/~mernst/pubs/infer-refimmutability-oopsl... PDF https://homes.cs.washington.edu/~mernst/pubs/infer-refimmutability-oopsl... slides (PDF)
Citation KeyHuangMDE2012