Mining control patterns from Java program corpora

Deng Jyi Chen*, Chung Chien Hwang, Shih-Kun Huang, David T.K. Chen

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review


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.

Original languageEnglish
Pages (from-to)57-83
Number of pages27
JournalJournal of Information Science and Engineering
Issue number1
StatePublished - 1 Jan 2004


  • Benchmark design
  • Code patterns
  • Control patterns
  • Data mining
  • Java VM
  • OOP
  • Program optimization
  • Static and dynamic analysis


Dive into the research topics of 'Mining control patterns from Java program corpora'. Together they form a unique fingerprint.

Cite this