添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接


  • Go Under the Hood: A source code study © 2018 - 2020 Changkun Ou
《Go 语言原本》

2.2 Go 程序编译流程

2.2.1 第一阶段:词法和语法分析

  • cmd/compile/internal/syntax (词法分析器,解析器,语法树)

在编译的第一阶段,源代码被 token 化(词法分析),解析(语法分析),并为每个源构造语法树文件。每个语法树都是相应源文件的精确表示对应于源的各种元素的节点,如表达式,声明和陈述。语法树还包括位置信息用于错误报告和调试信息的创建。

main -> gc.Main -> amd64.Init -> amd64.LinkArch.Init
-> typecheck -> typecheck -> saveerrors -> typecheckslice
-> checkreturn -> checkMapKeys -> capturevars -> 
typecheckinl -> inlcalls -> escapes -> 
newNowritebarrierrecChecker -> transformclosure