Title | ReIm & ReImInfer: Checking and inference of reference immutability and method purity |
Publication Type | Conference Paper |
Year of Publication | 2012 |
Authors | Huang W, Milanova A, Dietl W, Ernst MD |
Conference Name | OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications |
Pagination | 879–896 |
Date or Month Published | October |
Conference Location | Tucson, 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. |
Downloads | https://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 Key | HuangMDE2012 |