通过 cloc 工具先统计一下go的源码

/root/.gvm/gos/go1.13.5/src/

 

150万行go代码

中间代码 #

生成汇编代码

go build -gcflags -S main.go

获得ssa,可以看到汇编语言的优化过程 

GOSSAFUNC=main go build main.go

 

词法语法分析#

 

这一节介绍了 Go 语言的词法分析和语法分析过程,我们不仅从理论的层面介绍了词法和语法分析的原理,

还从源代码出发详细分析 Go 语言的编译器是如何在底层实现词法和语法解析功能的。

cmd/compile/internal/syntax.scannercmd/compile/internal/syntax.parser

 

类型检查#

 

类型检查是 Go 语言编译的第二个阶段,在词法和语法分析之后我们得到了每个文件对应的抽象语法树,随后的类型检查会遍历抽象语法树中的节点,

对每个节点的类型进行检验,找出其中存在的语法错误,在这个过程中也可能会对抽象语法树进行改写,这不仅能够去除一些不会被执行的代码、

makenew
makenew

 

TODO#