📔 DCC888 课程学习笔记
1. 笔记目录及其中知识点¶
1.1 First Part¶
- Introduction
- Control Flow Graph
- DataFlow Analysis
- Introduction to Lattice Theory
- Partial Redundancy Elimination
- Constraint Based Analysis
- Pointer Analysis
- Loop Optimizations
- Static Single Assignment Form
- Sparse Abstract Interpretation
- Tainted Flow Analysis
1.2 Second Part¶
- Range Analysis
- Program Slicing
- Predictive Compilation
- Operational Semantics
- Type Systems
- Proving Metatheorems with Twelf
- Type Inference
- Just-In-Time Compilers
- Register Allocation
- SSA-Based Register Allocation
- Correctness
- Divergence Analysis
2. 内容说明¶
课程笔记部分, 只做学习笔记更新,不做exercise部分的更新
。个人是使用ipad来直接对文档进行做作业。也可以自己打印之后进行。随你怎么方便进行。
如果看视频课很抽象,难懂,请自行补充基础知识。
- 编程语言C/C++
- 数据结构
- 算法设计分析与技巧 沙特版Book
- 汇编语言
- 计算机组成原理
- 计算机体系结构
- 线性代数
- 离散数学
按照 《编译原理》龙书
的介绍,需要有最基本的三门课程基础:
- 程序语言
- 数据结构与算法
- 离散数学
请自行补充知识点学习,内容不过多在dcc888系列中做学习笔记记录。
另外课程中使用 llvm ,所以请自行学习视频课:https://www.youtube.com/playlist?list=PLDSTpI7ZVmVnvqtebWnnI8YeB8bJoGOyv
非常忠心感谢 西班牙Professor : Fernando Magno Quintao Pereira 开源的编译器课程,让编译器的学习更加的方便和入门。
3. 参考资料¶
- 参考视频课程和slides:https://homepages.dcc.ufmg.br/~fernando/classes/dcc888/ementa/
- 书籍:《编译原理》龙书
- llvm视频课:https://www.youtube.com/playlist?list=PLDSTpI7ZVmVnvqtebWnnI8YeB8bJoGOyv