第15周 星期二 第2大节

  • 视频:screen_编译原理与设计_第15周_星期二_第2大节.mp4
  • 字幕:transcripts/第15周_星期二_第2大节.srt

时间轴

  • 02:18 课堂安排:倒数第二节,下节最后一节
  • 03:07 ⚠️ 7月3日考试
  • 03:12 乐学作业/测验/实验按时完成(系统自动计分)
  • 04:55 到达定值数据流方程详解:in/out/gen/kill
  • 08:56 out = (in - kill) ∪ gen; in = 前驱out的并集
  • 13:19 四基本块的gen(kill) → 迭代求in/out
  • 19:07 示例迭代计算
  • 24:59 UD链在循环优化中的用途
  • 25:21 可用表达式数据流方程(会合运算符为交集)
  • 31:46 活跃变量数据流方程(方向与控制流相反,后→前)
  • 34:01 数据流分析为循环优化做准备
  • 35:31 循环优化四种类型:①代码外提 ②强度削弱 ③归纳变量删除 ④循环展开合并
  • 36:15 代码外提—前置节点概念
  • 38:25 代码外提算法:不变运算判定(常数/循环外定值)
  • 40:47 完整示例:基本块划分→流图→回边→外提
  • 42:57 不变运算查找算法
  • 51:00 不变运算算法三个条件详解
  • 58:29 多基本块外提示例(A=1、A=2顺序问题)
  • 59:50 代码外提两个大条件
  • 01:11:43 条件二:A离开循环后不再活跃
  • 01:14:42 强度削弱和删除归纳变量
  • 01:18:02 基本归纳变量和归纳变量定义
  • 01:19:51 查找归纳变量算法:三元组表示(I, C, D)
  • 01:29:39 向量内积强度削弱完整示例
  • 01:43:55 删除归纳变量算法
  • 01:45:38 另一个循环优化示例
  • 01:54:55 优化效率与代价矛盾
  • 01:56:21 下课+准备讲作业题
  • 02:00:15 作业题讲解:正规式→NFA→DFA→转换序列
  • 02:05:57 作业题讲解:文法类型判断、语言描述、最左/最右推导

关键点

考勤/签到/小测

无。

作业

  • 03:12 乐学作业/测验/实验必须按时完成(系统自动计分,老师不干预)
  • 02:00:15 讲解第一次作业(正规式→NFA→DFA)
  • 02:05:57 讲解第二次作业(文法类型/最左最右推导)
  • 02:06:12 ⚠️ 第一次作业常见错误:NFA转换序列应写状态序列而非状态集合序列
  • 02:06:17 第二次作业错误较多(小题多)
  • 02:26:14 不要迷信往年答案(无官方答案,学生整理的)

考试/复习重点

  • ⚠️ 03:07 7月3日考试
  • 01:56:21 代码生成部分不考
  • 数据流方程推导要掌握:out=(in-kill)∪gen(08:56
  • 代码外提两个大条件要理解(59:50
  • 强度削弱:乘法→加法替代(01:14:42
  • 归纳变量删除算法(01:43:55
  • 概念题多为填空题(02:28:39
  • 02:06:12 02:06:17 作业题的常见错误要回看

其他需要回看的片段

  • 22:50-24:07 in/out迭代计算示例
  • 27:46-31:42 可用表达式示例(B1的4×I在B3是否可用)
  • 40:47-42:57 代码外提完整示例(回边B3→B2)
  • 01:03:30-01:11:43 代码外提条件一的三个反例
  • 01:29:39-01:35:57 向量内积强度削弱完整示例
  • 02:00:15-02:26:37 作业题讲解(考试重要参考)

省流

数据流方程+循环优化核心:代码外提/强度削弱/归纳变量删除。⚠️ 7月3日考试!代码生成不考。后半节讲解作业题(考试重要参考)。概念题为填空题,大题需掌握常规题型。