Browse > Article

A Method to Construct Control Flow Graphs for Java Programs by Decoupling Exception Flow Analysis from Normal Flow Analysis  

조장우 (부산외국어대학교 컴퓨터공학부)
창병모 (숙명여자대학교 컴퓨터과학과)
Abstract
Control flow graph is used for Performing many Program-analysis techniques, such as data-flow and control-dependence analysis, and software-engineering techniques, such as program slicing and testings. For these analyses to be safe and useful, the CFG should incorporate the exception flows that are induced by exceptions. In previous research to construct control flow graph, normal flows and exception flows are computed at the same time, since these two flows are known to be mutually dependent. By investigating realistic Java programs, we found that the cases when these two flows are mutually dependent rarely happen. So, we can decouple exception flow analysis from normal flow analysis. In this paper we propose an analysis that estimates exception flows. We also propose exception flow graph to represent exception flows. And we show that the control flow graph that accounts for exception flows can be constructed by merging exception flow graph onto normal control flow graph.
Keywords
control flow graph; control flow analysis; exception flow; normal flow;
Citations & Related Records
연도 인용수 순위
  • Reference
1 B. G. Ryder, D. Smith, U. Kremer, M. Gordon, and N. Shah, 'A static Study of Java Exceptions using JESP,' Tech. Rep. DCS-TR-403, Rutgers University, Nov. 1999
2 S. Shinha and M. J. Harrold, 'Analysis and Testing of Programs With Exception-Handling Constructs,' IEEE Trans. on Software Engineering, Vol. 26, No. 9, 2000   DOI   ScienceOn
3 R. K. Chatterjee, et al., 'Complexity of concrete type-inference in the presence of exceptions,' Lecture Notes in Computer Science, vol. 1381, pp. 57-74, Apr. 1998   DOI   ScienceOn
4 N. Heintze, 'Set-based program analysis,' Ph.D thesis, Carnegie Mellon University, Oct. 1992
5 이정수, 조장우, '클래스분석에서 예외분석의 필요성,' 프로그래밍언어 논문지, 제16권, 제1호, 2002.2
6 J. D. Choi, D. Grove, M. Hind, and V. Sarkar, 'Efficient and precise modeling of exceptions for analysis of Java programs,' in Proceedings of PASTE '99 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, Sep. 1999, pp. 21-31   DOI
7 S. Drossopoulou and T. Valkevych, 'Java type soundness revisit,' Technical Report, Imperial College, November 1999
8 F. Tip and J. Parlsberg, 'Scalable Propagation-Based Call Graph Consturction Algorithms,' In Proceedings of Annual Conference an Objected-Oriented Programming systems, Languages, and Applicatons, pages 281-293, Oct. 2000   DOI
9 R. Chatterjee and B. G. Ryder, 'Data-flow-based testing of object-oriented libraries,' Tech. Rep. DCS-TR-382, Rutgers University, Mar. 1999
10 B.-M. Chang, J.-W. Jo, K. Yi, and K. Choe, 'Interproceduaral Exception Analysis for Java,' In Proceedings of 2001 ACM Symposium on Applied Computing, pages 623-625, Mar. 2001   DOI
11 J.-W. Jo, B.-M. Chang, K. Yi, and K. Choe, 'An Uncaught Exception Analysis for Java,' The Journal of Systems and Software, accepted for publication   DOI   ScienceOn
12 D. Bacon and P. Sweenty, 'Fast Statics Analysis of C++ Virtual Function Calls,' In Proceedings of 11th Anual Conference on Objected-Oriented Programming Systems, Languages, and Applications, pages 324-341, Jan 1994
13 B. Chang and Jang-Wu Jo, 'Granularity of Constraint-Based analysis for Java,' in Proceedings of ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, Sep. 2001, pp. 94-102
14 K, Yi and S. Ryu, 'Towards a cost-effective estimation of uncaught exceptions in SML programs,' In Lecture Note n Computer Science, volume 1302, pages 98-113, Springer-Verlag, Proceedings of 4th Static Analysis Symposium, Sep, 1997   DOI   ScienceOn