

Static Program Analysis
Season - Episode
-
1 - 1Course Introduction Apr 03, 2024
-
1 - 2Intermediate Representation Apr 10, 2024
-
1 - 3Data Flow Analysis - Applications I Apr 17, 2024
-
1 - 4Data Flow Analysis - Applications II Apr 24, 2024
-
1 - 5Data Flow Analysis - Foundations I May 01, 2024
-
1 - 6Data Flow Analysis - Foundations II May 08, 2024
-
1 - 7Interprocedural Analysis May 15, 2024
-
1 - 8Pointer Analysis May 22, 2024
-
1 - 9Pointer Analysis - Foundations I May 29, 2024
-
1 - 10Pointer Analysis - Foundations II Jun 05, 2024
-
1 - 11Pointer Analysis - Context Sensitivity I Jun 12, 2024
-
1 - 12Pointer Analysis - Context Sensitivity II Jun 19, 2024
-
1 - 13Static Analysis for Security Jun 26, 2024
-
1 - 14Datalog-Based Program Analysis Jul 03, 2024
-
1 - 15CFL-Reachability and IFDS Jul 10, 2024
-
1 - 16Soundness and Soundiness Jul 17, 2024
Overview
Software Analysis or Static Program Analysis is a course of Nanjing University developed by Tian Tan and Yue Li in Spring 2020. In this course, we will learn about static program analysis, a useful technique for improving the reliability, security and performance of software, and it becomes increasingly impactful in industries nowadays. The course covers two parts: theory and practice. In theory, various materials will be introduced: from the foundations of classical data-flow and pointer analyses to some advanced topics such as security analysis and soundiness. In practice, a brand new static program analysis framework called Tai-e was designed, on top of which we'll implement a series of assignments including live variable analysis, constant propagation, dead code detection, CHA call graph construction, context-insensitive and context-sensitive pointer analyses, and taint analysis.