Estimating Exception-Induced Control Flow for Java

Exception analyses so far cannot provide information on the propagation of thrown exceptions, which is necessary to construct interprocedural control flow graph, visualize exception propagation, and slice exception-related parts of programs. In this paper, we propose a set-based analysis, which estimates exception propagation of Java programs. To formalize exception propagation, we first describes an operational semantics with exception propagation taken into consideration. We design a set-based analysis to estimates exception propagation based on this operational semantics, and show its correctness. We also provide some applications of the analysis.

[1]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[2]  Kwangkeun Yi,et al.  Interprocedural exception analysis for Java , 2001, SAC.

[3]  Jong-Deok Choi,et al.  Efficient and precise modeling of exceptions for the analysis of Java programs , 1999, PASTE '99.

[4]  Patrick Cousot,et al.  Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form , 1995, CAV.

[5]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[6]  Gregg Rothermel,et al.  System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Barbara G. Ryder,et al.  A Static Study of Java Exceptions Using JESP , 2000, CC.

[8]  Barbara G. Ryder,et al.  Complexity of Concrete Type-Inference in the Presence of Exceptions , 1998, ESOP.

[9]  Saurabh Sinha,et al.  Analysis and Testing of Programs with Exception Handling Constructs , 2000, IEEE Trans. Software Eng..

[10]  Nevin Charles Heintze,et al.  Set based program analysis , 1992 .

[11]  François Pessaux,et al.  Type-based analysis of uncaught exceptions , 2000, TOPL.

[12]  Jeffrey S. Foster,et al.  Tracking down Exceptions in Standard ML Programs , 1998 .

[13]  Tobias Nipkow,et al.  Javalight is type-safe—definitely , 1998, POPL '98.

[14]  Kwangkeun Yi,et al.  Towards a Cost-Effective Estimation of Uncaught Exceptions in SML Programs , 1997, SAS.

[15]  David Grove,et al.  Fast interprocedural class analysis , 1998, POPL '98.

[16]  Mary Jean Harrold,et al.  Reuse-driven interprocedural slicing , 1998, Proceedings of the 20th International Conference on Software Engineering.

[17]  Jens Palsberg,et al.  Object-oriented type inference , 1991, OOPSLA 1991.

[18]  Sophia Drossopoulou,et al.  Java Type Soundness Revisited , 2000 .

[19]  Martin P. Robillard,et al.  Analyzing exception flow in Java programs , 1999, ESEC/FSE-7.

[20]  Kwangkeun Yi,et al.  Exception Analysis for Java , 1999, ECOOP Workshops.

[21]  Sophia Drossopoulou,et al.  Java is Type Safe - Probably , 1997, ECOOP.