上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.16 总结
Go语言可执行文件的生成离不开编译器所做的复杂工作,如果不理解Go语言的编译器,那么对Go语言的理解是不完整的。编译阶段包括词法解析、语法解析、抽象语法树构建、类型检查、变量捕获、函数内联、逃逸分析、闭包重写、遍历并编译函数、SSA生成、机器码生成。编译器不仅能准确地表达语义,还能对代码进行一定程度的优化。可以看到,Go语言的很多语法检查、语法特性都依赖编译时。理解编译时的基本流程、优化方案及一些调试技巧有助于写出更好的程序。本书的后续章节,还将频繁使用编译器的知识来探究Go语法中的特性。