编译器原理

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

transformer function:
notion image

© jianxiaoBai 2021 - 2024