Previous [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ]


Journal of Information Science and Engineering, Vol. 20 No. 1, pp. 57-83 (January 2004)

Mining Control Pattern from Java Program Corpora*

Deng-Jyi Chen, Chung-Chien Hwang, Shih-Kun Huang+
and David T. K. Chen++
Department of Computer Science and Information Engineering
National Chiao Tung University
Hsinchu, 300 Taiwan
+Institute of Information Science
Academia Sinica
Taipei, 115 Taiwan
++Department of Computer and Information Science
Fordham University
Bronx, N. Y., U.S.A.

Java programming, based on the Object-Oriented (OO) paradigm, has played a major role in program design and implementation due to the fact that it is extensible, maintainable, and reusable in software system construction. Experiences with using Java programming have indicated that there also exist disadvantages with respect to its execution inefficiency and complicated runtime behaviors. Code-patterns are statically recurring structures specifically related to a programming language. They can be used in parallel to help programmer design software systems to solve particular problems. In opposition to the role of code-patterns in assisting compilation, control-patterns are dynamically recurring structures invoked during program execution time. They can be used to understand the run-time behaviors of OO-programs with respect to the underlying architecture, such as Java-VM. A control pattern describes the model of control transfer among objects during OO program execution. In this paper, several control patterns are proposed and discussed. We have analyzed and collected several control patterns from several Java program corpora. The experimental results show that control patterns do exist and provide information for quantitative analysis. Simple patterns, compound patterns, and complex patterns have different ratios depending on their source programs. Collected control patterns can be used to provide guidelines for Java programmers so that they can write more effective Java programs.

Keywords: OOP, control patterns, data mining, java VM, code patterns, benchmark design, program optimization, static and dynamic analysis

Full Text () Retrieve PDF document (200401_04.pdf)

Received January 31, 2003; accepted July 4, 2003.
Communicated by Ming-Syan Chen.
* This research work is supported by the National Science council at Taiwan under the contract number 88-2213-E-009-007 and an earlier version of this paper has been presented at the ICS 2002.