跳转至

Chapter 0 Overview

  • this is the my notes of Compilers in 2024
  • the course is taught by Prof. Hengfeng Wei @NJU

Credits

Introduction

  1. 高级” 语言 ⇒ (通常) “低级” 语言 (如, 汇编语言)
  2. 汇编语言经过汇编器生成机器语言
  3. 汇编语言网站:godblot
  4. 采用的指令集:RISC-V
  5. RISC-V references:
    • https://riscv-programming.org/book.html
    • http://www.riscvbook.com/
  6. RISC-V Simulator:
    • https://github.com/TheThirdOne/rars
  7. 语言类应用程序:
    • 配置文件解析 (.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)
  8. 语法分析器生成器 ANTLR
    • https://www.antlr.org/index.html
    • https://www.antlr.org/tools.html (IntelliJ Plugin)
    • http://lab.antlr.org/ (Online lab)
  9. LLVM
    • https://llvm.org/
  10. 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
    • https://clang.llvm.org/
  • 机器无关中间表示优化

Slide

0-overview

Supplementary Materials