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.
Required Texts and Course Materials
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.
