软件分析技术 / 2026秋

新通知


课程简介

对软件代码进行分析是各种软件工程工具的基本手段之一。典型软件开发工具比如编译器、代码编辑器、测试与调试工具等等都离不开对软件代码进行分析。在工业界,各大公司的基础平台部门对掌握软件分析技术的人才有大量需求;在学术界,软件分析技术是程序设计语言和软件工程领域开展研究的必备基础知识之一。但是,软件分析技术相关文献存在内容广,流派多,数学基础要求高等方面的特点,使得学习软件分析技术一直是一件很困难的事。本课程希望通过对这一类技术进行通俗易懂的讲解,帮助同学们构建较完整的软件分析技术知识体系,了解该领域的前沿知识,学术上为进一步开展程序设计语言和软件工程领域的学术研究打下基础,在实践上培养开发大型软件工程工具的开发能力。

课程信息

  • 上课周次:第 1~16 周
  • 上课时间:每周周二 5~6 节、双周周四 3~4 节
  • 上课地点:三教 105
  • 预备知识:熟悉常见的数学符号
  • 课程讲义与教学计划

课程内容

  • 基于抽象解释的程序分析:数据流分析、过程间分析、指针分析、抽象解释及其自动化等。
  • 基于约束求解的程序分析:SAT、SMT、符号执行等。
  • 前沿与应用:量化分析、贝叶斯程序分析、程序合成、缺陷定位与修复等。王迪老师、张昕老师将分别带来量化分析和贝叶斯程序分析的客座讲座。

考核与评分

考核项目 分值 说明
课程作业 20 分 根据作业完成质量评分
课程项目 40 分 目前计划分为命题项目、自选项目,各 20 分
期末考试 40 分 计划半开卷,可携带小抄;具体页数及考试安排待公布

项目计划及参考资料见材料页,作业要求见作业页

教学联系

  • 熊英飞(任课教师):办公室为理科一号楼 1431,邮箱 xiongyf@pku.edu.cn
  • 徐皓天(助教,博士一年级):办公室在新燕园,邮箱 xht@stu.pku.edu.cn
  • 孔启皓(助教,本科四年级):办公室为理科一号楼 1434,邮箱 qh.kong@stu.pku.edu.cn

历史课件

2025秋, 2024秋, 2023秋, 2022秋, 2021秋, 2020秋, 2019秋, 2018秋, 2017秋, 2016秋, 2015秋, 2014秋


任课教师

熊英飞
副教授

课程助教

徐皓天
xht@stu.pku.edu.cn