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:
@ARTICLE(pechtchanski-sarkar-05,
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",
)
[Home]
Last modified on
Igor Peshansky
pechtcha@cs.nyu.edu