面试问题学习笔记 面试问题学习笔记
  • 操作系统
  • 计算机网络
  • JavaScript/HTML
  • Go
  • Java
  • spring全家桶
  • 中间件
  • MySQL
  • Redis
  • MongoDB
  • C/C++
  • 安全相关
  • 软件相关
  • 系统相关
  • 智力题
  • 业务问题
GitHub (opens new window)
  • 操作系统
  • 计算机网络
  • JavaScript/HTML
  • Go
  • Java
  • spring全家桶
  • 中间件
  • MySQL
  • Redis
  • MongoDB
  • C/C++
  • 安全相关
  • 软件相关
  • 系统相关
  • 智力题
  • 业务问题
GitHub (opens new window)
  • Go

    • 编译原理
      • 基本概念
      • 编译原理
    • 数据结构
    • 语言基础
    • 常用关键字
    • 并发编程
    • 内存管理
    • 元编程
    • 标准库
    • 其他
    • 面试问题
  • JAVA

  • spring全家桶

  • 中间件

  • MySQL

  • Redis

  • MongoDB

  • 后端
  • Go
小哈里
2021-03-20
目录

编译原理

# 基本概念

抽象语法树

是源代码语法的结构的一种抽象表示,它用树状的方式表示编程语言的语法结构1 (opens new window)。抽象语法树中的每一个节点都表示源代码中的一个元素,每一棵子树都表示一个语法元素,

静态单赋值

静态单赋值 (opens new window)(Static Single Assignment、SSA)是中间代码的特性,如果中间代码具有静态单赋值的特性,那么每个变量就只会被赋值一次2 (opens new window)。

指令集

不同的机器有不同的指令集,包括复杂指令集合精简指令集

# 编译原理

因为这东西说起来比较复杂,我还没研究完,直接说一下大致流程

  1. 词法与语法分析
  2. 类型检查
  3. 中间代码生成
  4. 机器码生成

深入参考Go 语言编译过程概述 | Go 语言设计与实现 (draveness.me) (opens new window)

编辑(master改成main) (opens new window)
上次更新: 2023/02/06, 19:47:34
数据结构

数据结构→

Theme by Vdoing | Copyright © 2023-2023 小哈里
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式