decaf-doc
  • Introduction
  • pa1a
    • 实验内容
    • lalr1使用指导
      • 编写lexer
      • impl块的可选属性
      • 产生式和语法动作
      • 解决冲突
      • 一个完整的例子
    • 抽象语法树
    • 框架中部分实现的解释
    • 文件结构
  • pa1b
    • 实验内容
    • lalr1使用指导
    • 错误恢复
    • 文件结构
  • pa2
    • 实验内容
    • 语义分析
    • 符号表
    • 语句的返回类型
    • visitor模式
    • 框架中部分实现的解释
  • pa3
    • 实验内容
    • 中间代码
    • 中间代码中的类型信息
    • 运行时存储布局
    • 面向对象机制
    • tacvm介绍
  • pa4
    • 实验内容
    • 基本块
    • 数据流分析概述
    • 数据流优化概述
    • 公共表达式提取
    • 复写传播
    • 常量传播
    • 死代码消除
  • pa5
    • 实验内容
    • 图着色基本原理
    • 改进干涉图节点
    • 着色算法
    • 预着色节点
    • 干涉图节点合并
    • 调用约定
Powered by GitBook
On this page

Was this helpful?

  1. pa1b

文件结构

.
├── Cargo.lock
├── Cargo.toml
├── common
│   ├── Cargo.toml
│   └── src
│       ├── errors.rs
│       ├── ignore_result.rs
│       ├── indent_printer.rs
│       ├── lib.rs
│       ├── loc.rs
│       ├── op.rs
│       └── ref.rs
├── driver
│   ├── Cargo.toml
│   └── src
│       ├── cli.rs
│       ├── lib.rs
│       ├── test.rs
│       └── test_util.rs
├── print
│   ├── Cargo.toml
│   └── src
│       ├── ast.rs
│       └── lib.rs
└── syntax
    ├── Cargo.toml
    └── src
        ├── ast.rs
        ├── lib.rs
        ├── parser_ll.rs # 相比pa1a唯一一个新增的文件,在这里用ll(1)文法实现新语法
        ├── parser.rs
        ├── symbol.rs
        └── ty.rs
Previous错误恢复Nextpa2

Last updated 5 years ago

Was this helpful?