Show simple item record

dc.contributor.authorSalcianu, Alexandru
dc.contributor.authorRinard, Martin
dc.contributor.otherComputer Architecture
dc.date.accessioned2005-12-22T01:31:05Z
dc.date.available2005-12-22T01:31:05Z
dc.date.issued2004-05-17
dc.identifier.otherMIT-CSAIL-TR-2004-030
dc.identifier.otherMIT-LCS-TR-949
dc.identifier.urihttp://hdl.handle.net/1721.1/30470
dc.description.abstractWe present a new method purity analysis for Java programs.A method is pure if it does not mutate any location that exists in the program state right before method invocation.Our analysis is built on top of a combined pointer and escape analysis for Java programs and is capable of determining that methods are pure even when the methods do heap mutation, provided that the mutation affects only objects created after the beginning of the method. Because our analysis extracts a precise representation of the region of the heap that each method may access, it is able to provide useful information even for methods with externally visible side effects. In particular, it can recognize read-only parameters (a parameter is read-only if the method does not mutate any objects transitively reachable from the parameter) and safe parameters (a parameter is safe if it is read-only and the method does not create any new externally visible paths in the heap to objects transitively reachable from the parameter). The analysis can also generate regular expressions that characterize the externally visible heap locations that the method mutates.We have implemented our analysis and used it to analyze several data structure implementations. Our results show that our analysis effectively recognize a variety of pure methods, including pure methods that allocate and mutate complex auxiliary data structures. Even if the methods are not pure, our analysis can provide information which may enable developers to usefully bound the potential side effects of the method.
dc.format.extent16 p.
dc.format.extent28889089 bytes
dc.format.extent1207932 bytes
dc.format.mimetypeapplication/postscript
dc.format.mimetypeapplication/pdf
dc.language.isoen_US
dc.relation.ispartofseriesMassachusetts Institute of Technology Computer Science and Artificial Intelligence Laboratory
dc.titleA Combined Pointer and Purity Analysis for Java Programs


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record