编译器原理
date
Feb 3, 2022
slug
compiler-core
status
Published
tags
原理
summary
大多数编译器可分成三个阶段:解析、转换、代码生成。
type
Post
大多数编译器可分成三个阶段:
- 解析:将源代码转换成一种通用的 数据结构(AST)来表示
- 词法分析:将源代码分割成每一个 最小单元(Token)
- 语法分析:
- 通过 Token 转换成 AST
- AST 可以表示代码语句的每一个 片段 以及它们之间的 关系
- 转换:通过 AST 做一些 处理,已达到编译器目的
- 只是把 AST 拿过来对它进行一些修改
- 可以在同一种语言下操作 AST,也可以将其翻译成新的语言
- 代码生成:处理完成后,转换成新的代码
- 有时会和 转换 环节重叠,但代码生成最主要的部分还是根据 AST 来输出代码
transformer function: