Chapter 0 Overview
- this is the my notes of Compilers in 2024
- the course is taught by Prof. Hengfeng Wei @NJU
Credits
Introduction
- 高级” 语言 ⇒ (通常) “低级” 语言 (如, 汇编语言)
- 汇编语言经过汇编器生成机器语言
- 汇编语言网站:godblot
- 采用的指令集:RISC-V
- RISC-V references:
- https://riscv-programming.org/book.html
- http://www.riscvbook.com/
- RISC-V Simulator:
- https://github.com/TheThirdOne/rars
- 语言类应用程序:
- 配置文件解析 (.properties)
- CSV 文件 (Comma-Separated Values)
- JSON 文件 (JavaScript Object Notation)
- SQL 引擎 (Structured Query Language)
- TLA+/TLAPS (TPaxos.tla)
- (Java) 字节码解释器
- C/C++ 语言编译器
- 排版工具 (LATEX)
- 绘图工具 (TikZ, Dot/Graphviz)
- L-System (Cantor Set)
- 语法分析器生成器 ANTLR
- https://www.antlr.org/index.html
- https://www.antlr.org/tools.html (IntelliJ Plugin)
- http://lab.antlr.org/ (Online lab)
- LLVM
- Reference Books
- http://docs.compilers.cpl.icu/#/2024/resources
Overview
- IR: Intermediate Representation (中间表示)
- Source Program -> Front End -> IR -> Back End -> Target Program
- 前端 (分析阶段): 分析 源语言 程序, 收集所有必要的信息
- 后端 (综合阶段): 利用收集到的信息, 生成 目标语言程序
- Clang: a C language family frontend for LLVM
- 机器无关 的 中间表示优化
Slide
0-overview
Supplementary Materials