TitleParameter reference immutability: Formal definition, inference tool, and comparison
Publication TypeJournal Article
Year of Publication2009
AuthorsArtzi S, Quinonez J, Kieżun A, Ernst MD
JournalAutomated Software Engineering
Volume16
Pagination145–192
Date or Month PublishedMarch
AbstractKnowing which method parameters may be mutated during a method's execution is useful for many software engineering tasks. A parameter reference is \emphimmutable if it cannot be used to modify the state of its referent object during the method's execution. We formally define this notion, in a core object-oriented language. Having the formal definition enables determining correctness and accuracy of tools approximating this definition and unbiased comparison of analyses and tools that approximate similar definitions. \par We present Pidasa, a tool for classifying parameter reference immutability. Pidasa combines several lightweight, scalable analyses in stages, with each stage refining the overall result. The resulting analysis is scalable and combines the strengths of its component analyses. As one of the component analyses, we present a novel dynamic mutability analysis and show how its results can be improved by random input generation. Experimental results on programs of up to 185 kLOC show that, compared to previous approaches, Pidasa increases both run-time performance and overall accuracy of immutability inference.
Downloadshttps://homes.cs.washington.edu/~mernst/pubs/mutability-ase2007-slides.pdf slides (PDF) https://homes.cs.washington.edu/~mernst/pubs/mutability-ase2007-slides.pptx slides (PowerPoint) https://homes.cs.washington.edu/~mernst/pubs/mutability-jase2009.pdf PDF
Citation KeyArtziQKE2009