golang编译原理初识

文章目录

  • 关于编译器
  • 词法分析
  • 语法分析
  • 类型检查
  • 生成 SSA 中间代码
  • 生成机器代码
  • 总结

关于编译器

编译器本质就是一个翻译器,作用是将一个高级语言翻译成计算机可以识别的机器语言,如今的编译器都是分层架构,分层可以增加各层之间的独立性。golang 编译器分为前端和后端

编译器种类:

  • 本地编译器:可以编译生成所在计算机系统相同平台可执行的目标代码
  • 交叉编译器:可生成在其他平台上可执行的目标代码

golang 编译器主要编译阶段:

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

词法分析

golang 通过词法分析器程序将 golang 源代码文件中的字符串序列化成 Token 序列,或者称为标记序列,便于编译器后面的进一步进行语法分析

语法分析

golang 通过语法分析器将刚才生成的标记序列按照 golang 定义好的语法进行整理,构建出最后的抽象语法树 AST

每一个抽象语法树 AST 都对应一个单独的 golang 源码文件。AST 中包含有当前文件所属包名,定义的常量,结构体和函数等信息,方便后续调试

你可能感兴趣的:(#,Golang,编译原理,golang,编译原理,编译器)