Immutability Specification and its Applications

Authors:  Igor Pechtchanski, Vivek Sarkar

Journal:  Concurrency and Computation: Practice and Experience, Volume 17, Number 5-6, April/May 2005; Special Issue: Java Grande/ISCOPE 2002

Abstract:  A location is said to be immutable if its value and the values of selected locations reachable from it are guaranteed to remain unchanged during a specified time interval. We introduce a framework for immutability specification, and discuss its application to code optimization. Compared with a final declaration, an immutability assertion in our framework can express a richer set of immutability properties along three dimensions -- lifetime, reachability and context. We present a framework for processing and verifying immutability annotations in Java, as well as extending optimizations so as to exploit immutability information. Preliminary experimental results show that a significant number (61%) of read accesses could potentially be classified as immutable in our framework. Further, use of immutability information yields substantial reductions (33-99%) in the number of dynamic read accesses, and also measurable speedups in the range of 5-10% for certain benchmark programs.

Note:  This publication supersedes the JGI'02 paper.

Download:  postscript file (1883K), PDF file (1860K)

BibTeX Entry: 
  Author      = "Igor Pechtchanski and Vivek Sarkar",
  Title       = "Immutability specification and its applications",
  Journal     = "Concurrency and Computation: Practice and Experience",
  Volume      = "17",
  Number      = "5--6",
  Pages       = "639--662",
  Year        = "2005",
  Month       = "April/May",
  Note        = "Special Issue: Java Grande/ISCOPE 2002",
  Publisher   = "John Wiley \& Sons",

Last modified on
Igor Peshansky