Automatic Inference of Stationary Fields: A Generalization of Java's Final Fields
Source: Association for Computing Machinery
Java programmers can document that the relationship between two objects is unchanging by declaring the field that encodes that relationship to be final. This information can be used in program understanding and detection of errors in new code additions. Unfortunately, few fields in programs are actually declared final. Programs often contain fields that could be final, but are not declared so. Moreover, the definition of final has restrictions on initialization that limit its applicability. This paper has 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.
| Format: | Size: | 195.70 | |
| Date: | Dec 2007 |



