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

Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“ReIm & ReImInfer: Checking and inference of reference immutability and method purity” by Wei Huang, Ana Milanova, Werner Dietl, and Michael D. Ernst. In OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, (Tucson, AZ, USA), Oct. 2012, pp. 879-896.

Abstract

Reference immutability ensures that a reference is not used to modify the referenced object, and enables the safe sharing of object structures. A pure 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.

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.

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.

Download: PDF, slides (PDF), slides (PowerPoint), implementation.

BibTeX entry:

@inproceedings{HuangMDE2012,
   author = {Wei Huang and Ana Milanova and Werner Dietl and Michael D. Ernst},
   title = {{ReIm} \& {ReImInfer}: Checking and inference of reference
	immutability and method purity},
   booktitle = {OOPSLA 2012, Object-Oriented Programming Systems,
	Languages, and Applications},
   pages = {879--896},
   address = {Tucson, AZ, USA},
   month = oct,
   year = {2012}
}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.