kirancodes.me
To Proof Maintenance & Beyond!

Automatic dimension inference and checking for object-oriented programs

Sudheendra Hangal, Monica S. Lam

Abstract

This paper introduces UniFi, a tool that attempts to automatically detect dimension errors in Java programs. UniFi infers dimensional relationships across primitive type and string variables in a program, using an inter-procedural, context-sensitive analysis. It then monitors these dimensional relationships as the program evolves, flagging inconsistencies that may be errors. UniFi requires no programmer annotations, and supports arbitrary program-specific dimensions, thus providing fine-grained dimensional consistency checking. UniFi exploits features of object-oriented languages, but can be used for other languages as well. We have run UniFi on real-life Java code and found that it is useful in exposing dimension errors. We present a case study of using UniFi on nightly builds of a 19,000 line code base as it evolved over 10 months.

BibTeX
@inproceedings{Hangal-Lam:ICSE09,
  author    = {Sudheendra Hangal and
               Monica S. Lam},
  title     = {Automatic dimension inference and checking for object-oriented programs},
  booktitle = {ICSE},
  pages     = {155--165},
  publisher = {{IEEE}},
  year      = {2009},
}

Related papers