ReIm & ReImInfer: Checking and inference of reference immutability and method purity

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 NameObject-Oriented Programming Systems, Languages, and Applications (OOPSLA 2012)
Date or Month PublishedOctober 23-25
Conference LocationTucson, AZ, USA
Abstract<p><em>Reference immutability</em> ensures that a reference is not used to modify the referenced object, and enables the safe sharing of object structures. A <em>pure method</em> 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. </p> <p> 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. </p> <p> 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.</p>
Downloadsimplementation
Citation KeyHuangMDE2012
Last changed Mon, 2013-06-03 10:27