This dissertation introduces stationary fields, which are widely prevalent in Java programs, and which have a property useful for reasoning about programs Java programmers can document that the relationship between two objects is unchanging by declaring the field that encodes that relationship to be
We introduce stationary fields as a generalization of
We have developed an efficient algorithm for inferring which fields are stationary in a program, based on the observation that many fields acquire their value very close to object creation. We presume that an object's initialization phase has concluded when its reference is saved in some heap object. We perform precise analysis only regarding recently created objects. Applying our algorithm to real-world Java programs demonstrates that stationary fields are very common. Furthermore, stationary fields are much more common than
Guided by the experimental results, we show two programming idioms that violate the stationary field property, how the definition may be expanded to cover these cases, and corresponding analyses to locate these fields.
We show four applications of stationary fields to program analysis and understanding, as first examples of how stationary fields are useful. Three of the applications are to concurrent programs, an increasingly important area. They take advantage of an important property of stationary fields: because they do not change after their initialization, inter-thread interference through them is impossible. This property makes reasoning about concurrent programs easier, and we expect applications of stationary fields to concurrent programs to be a fruitful avenue of further research.
|Advisor:||Lam, Monica S.|
|School Location:||United States -- California|
|Source:||DAI-B 71/01, Dissertation Abstracts International|
|Keywords:||Object-oriented programs, Stationary fields|
Copyright in each Dissertation and Thesis is retained by the author. All Rights Reserved
The supplemental file or files you are about to download were provided to ProQuest by the author as part of a
dissertation or thesis. The supplemental files are provided "AS IS" without warranty. ProQuest is not responsible for the
content, format or impact on the supplemental file(s) on our system. in some cases, the file type may be unknown or
may be a .exe file. We recommend caution as you open such files.
Copyright of the original materials contained in the supplemental file is retained by the author and your access to the
supplemental files is subject to the ProQuest Terms and Conditions of use.
Depending on the size of the file(s) you are downloading, the system may take some time to download them. Please be