Program Analysis for Modern Software Tools

Program analysis is the foundation of software tools that must understand, evaluate, or transform code. This course develops the representations and reasoning methods behind compilers, interpreters, debuggers, optimizers, bug and vulnerability detectors, malware-analysis systems, memory-error and performance-monitoring tools, and AI-assisted software development. Students learn how source text becomes structured program representations and how control-flow, dataflow, liveness, and SSA analyses derive useful facts and justify transformations. In an era of AI-generated code, these systematic methods complement probabilistic generation by helping developers reason about correctness, security, performance, and the capabilities and limitations of automated tools.

No textbook is required. The instructor will provide lecture slides, worked examples, homework assignments, quiz information, and any supplementary readings or reference materials electronically. Course materials will be distributed through the Plaksha-designated course platform, which will also be used for homework submission.

Course Overview and Relevance

Modern software tools do far more than translate or execute code. They inspect programs for defects, transform them for efficiency, instrument them for debugging and monitoring, and help developers understand and modify large software systems. To perform these tasks, tools must recover structure from source text, represent possible execution paths, track how values are defined and used, and reason conservatively about program behavior. Related foundations recur across compilers and interpreters, static bug and vulnerability analyzers, malware and binary-analysis systems, memory diagnostics, debuggers and profilers, performance-monitoring systems, IDE refactoring and code-navigation features, and automated software-transformation tools.

About the Course Faculty

Dr Rajeev Barua is a Professor of Electrical and Computer Engineering at the University of Maryland. Dr Barua's research interests are in the areas of compilers, binary rewriters, embedded systems, and computer architecture. He has published over 60 peer-reviewed publications, and holds four granted patents. He is also the Founder of CEO of SecondWrite Inc, which markets a malware detection tool based on his research, where he has raised over $2M in public and private investment, and launched a product with several paying customers. Dr Barua is a recipient of the NSF CAREER award in 2002, the UMD George Corcoran Award for teaching excellence in 2003, and the UMD Jimmy Lin Award for innovation in 2014.