Roles of Variables Home Page
Taherkhani A. (2008)
Static Program Analysis for Recognizing Sorting Algorithms
Master's Thesis, Department of Computer Science and Engineering, Helsinki University of Technology.
Abstract: Automatic computer program analysis and code recognition is an interesting subject in computer science. The reason for this can be found mainly from software industry, and particularly from a certain phase of software life-cycle: maintenance.
By automatic computer program comprehension and code recognition we mean a system that could tell us what does the input program appears to be trying to do, what algorithms does it resemble and how closely, or what kind of structure and style does the program have.
If properly and comprehensively developed, such a system could help software developers gain a quick understanding of the software they are maintaining, and thus save them from reading the source code, which is a time-consuming task. A system of this kind could be well used in other phases of software projects like verication and validation tasks as well.
Another use of such a system is automatic assessment of exercises in computer science courses. There are a number of large size computer science-related courses at universities, which require many exercises to be submitted by students. The system could take in an exercise on particular subject, and tell the instructor, whether the exercise does what it is expected to do, and if not, how close is it to the desired functionality.
Previous works on automatic program analysis and code recognition are surveyed and different approaches to the problem are explained and evaluated. As a new technique, a static program analysis and code recognition based on the numerical and descriptive characteristics of algorithms is presented. Roles of variables used in algorithms plays an important role in the method. This work is limited to include only different well-known sorting algorithms, and further developing the system to cover other algorithms is left to the future research. Finally, other limitations of the work and some suggestions for future research are described.
Back to the literature page
Last updated: September 30, 2010