[COURSE] Add PKU Software Analysis (#520)

This commit is contained in:
Qi Zhan 2023-10-12 02:42:40 -05:00 committed by GitHub
parent c8747e787e
commit 3673c718ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,25 @@
# PKU Software Analysis
## Descriptions
- Offered by: Peking University
- Prerequisite: Data Structures and Algorithms, familiar with at least one programming language
- Programming Languages: Java, Python
- Difficulty: 🌟🌟🌟🌟
- Learning Hours: 60 hours
Software Analysis is a course offered by Prof. Yingfei Xiong from Peking University. The course mainly covers the following topics:
1. Program analysis based on abstract interpretation (data flow analysis, inter-procedural analysis, pointer analysis, abstract interpretation, etc.)
2. Program analysis based on constraint solving (SAT, SMT, symbolic execution, etc.)
3. Software analysis applications (program synthesis, bug localization, bug repair, etc.)
Compared with the [Software Analysis course of Nanjing University](./NJU-SoftwareAnalysis.en.md), this course covers **more comprehensive** theoretical and practical content of program analysis, and is more difficult. My main way of learning this course is to listen to the course. Prof. Xiong's lectures are very interesting. In addition to the theoretical content, he occasionally tells some academic related stories :)
The course project of this experiment is to implement a pointer analysis system on Java and a program synthesis tool, which is also a very interesting practice.
## Resources
- Course Website: [Homepage](https://xiongyingfei.github.io/SA/2020/main.htm) This is the course homepage of 2020. More course content can be found on [Prof. Xiong's homepage](https://xiongyingfei.github.io/).
- Course Video: [2020](https://liveclass.org.cn/cloudCourse/#/courseDetail/8mI06L2eRqk8GcsW)
- Course Textbook: None

View File

@ -0,0 +1,25 @@
# 北京大学 软件分析技术
## 课程简介
- 所属大学:北京大学
- 先修要求:数据结构与算法,至少熟悉一门编程语言
- 编程语言Java, Python
- 课程难度:🌟🌟🌟🌟
- 预计学时60 小时
软件分析技术是由北京大学熊英飞老师开设的一门课程,主要介绍了以下内容:
1. 基于抽象解释的程序分析(数据流分析、过程间分析、指针分析、抽象解释等)
2. 基于约束求解的程序分析SAT、SMT、符号执行等
3. 软件分析应用(程序合成、缺陷定位、缺陷修复等)
和南京大学的[软件分析课程](./NJU-SoftwareAnalysis.md)对比,这门课程的特点是讲了**更多更全面**的程序分析的理论与实践相关内容,难度也更大。这门课程我的主要的学习途径是听课,熊老师上课十分有趣,除了理论内容讲的很好偶尔也会讲一些学术相关的小段子:)
而本实验的的课程项目是实现一个Java上的指针分析系统和一个程序合成工具也是十分有趣的实践。
## 课程资源
- 课程网站:[主页](https://xiongyingfei.github.io/SA/2020/main.htm) 这是 2020 年的课程主页,在[熊老师的主页](https://xiongyingfei.github.io/)上可以找到更多年份的课程内容。
- 课程视频:[2020 燕云直播](https://liveclass.org.cn/cloudCourse/#/courseDetail/8mI06L2eRqk8GcsW)
- 课程教材:无

View File

@ -213,6 +213,7 @@ nav:
- 编译原理:
- "Stanford CS143: Compilers": "编译原理/CS143.md"
- "NJU 软件分析": "编译原理/NJU-SoftwareAnalysis.md"
- "PKU 软件分析": "编译原理/PKU-SoftwareAnalysis.md"
- 程序语言设计:
- "Stanford CS242: Programming Languages": "程序语言设计/CS242.md"
- 计算机图形学: