Efficient and Precise Modeling of Exceptions for the Analysis of Java Programs

Authors: Jong-Deok Choi, David Grove, Michael Hind, and Vivek Sarkar

Citation: Proceedings of the ACM SIGPLAN--SIGSOFT workshop on Program analysis for software tools and engineering. September 6, 1999, Toulouse France.

The Factored Control Flow Graph, FCFG, is a novel representation of a program's intraprocedural control flow, which is designed to efficiently support the analysis of programs written in languages, such as Java, that have frequently occurring operations whose execution may result in exceptional control flow. The FCFG is more compact than traditional (unfactored) CFG representations for exceptional control flow, yet there is no loss of precision in using the FCFG as described in this paper. In this paper, we introduce the FCFG representation and outline how standard forward and backward data flow analysis algorithms can be adapted to work on this representation. We also present empirical measurements of FCFG sizes for a large number of methods obtained from a variety of Java programs, and compare these sizes with those of a traditional CFG representation.

ACM Definitive Copy
Preprint PDF

ACM - Copyright © 1999 by Association for Computing Machinery, Inc.
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee.