CSC 455: Software Analysis and Improvement (Formerly Advanced Programming Systems)

CRN:
28998
Credit Hours:
4.0
Previous Offerings:

With the increasing diversity and complexity of computers and their applications, the development of efficient, reliable software has become increasingly dependent on automatic support from compilers & other program analysis and translation tools. This course covers principal topics in understanding and transforming programs at the assembly, function, and program levels. Specific techniques for imperative languages include data flow, dependence, and inter-procedural analyses; resource allocation; and program transformation for locality and parallelism. The course will also touch on theoretical issues in program semantics for higher order languages. Course projects include a program analyzer and optimizer for a subset of the C programming language.