Teaching Aid For Program Optimization
Teaching Aid For Program Optimization
Khushei Meghana Meda,Sriram Subramanian,2 Authors,N. S. Kumar
Abstract
Optimization is essential to obtain the “best” design against a set of priority criteria or constraints. However, optimization techniques need not be intuitive for all those who venture into software development, thus impeding the learning of certain programming concepts. A teaching aid for program optimization can be helpful in the field of performance engineering education. In this paper, we present our automated tool for C source code optimization. The input provided to the tool is a C program that is resource-intensive. On the input source, the tool performs optimizations in various directives and generates an equivalent C program. The tool presents the correctness of the processed program by showing the outputs of both the input and optimized programs, after running them in the backend. The tool also compares the difference in performance between the two programs by providing performance metrics. The tool can potentially assist in the learning of general program optimization techniques as well as the concepts of compiler design and performance engineering. The optimizations implemented in the tool go beyond data structure and algorithmic optimizations, focusing on various techniques that can be implemented at high-level structures of the source, most of which aren’t done in popular compilers. Automation of such procedures could conveniently provide an insight into fine programming paradigms and help the learner grasp abstract concepts.
