Combined static and dynamic mutability analysis
Knowing which method parameters may be mutated during a method'sexecution is useful for many software engineering tasks. We presentan approach to discovering parameter immutability, in which severallightweight, scalable analyses are combined in stages, with each stagerefining the overall result. The resulting analysis is scalable andcombines the strengths of its component analyses. As one of thecomponent analyses, we present a novel, dynamic mutability analysisand show how its results can be improved by random input generation.Experimental results on programs of up to 185 kLOC demonstrate that,compared to previous approaches, our approach increases both scalabilityand overall accuracy.