'

Traveling through Dakota: experiences with a O-O program analysis system

Michael Hind, IBM Watson Research Center, USA

Anthony Pioli, Register.com, USA

Program analysis can help improve the software engineering and testing of complex systems. Likewise, good software engineering principles can be used in the development of a program analysis system. This paper describes experiences with the design and implementation of the NPIC program analysis system. We describe how the object-oriented design of the intermediate representation provides front end and analysis independence using the abstract factory pattern, and illustrate how using multiple inheritance allows it to be extended to support program analysis. We also describe how the intermediate representation can be serialized to and from a file. The techniques described in this work provide useful insight into the construction of an object-oriented program analysis system.'