Babygo,从头开始制作的go编译器 Babygo是一个小型且简单的go编译器。 (我相信,这是世界上最小最简单的。)它是从头开始制作的,可以自行编译。 不依赖任何库。 标准库和系统调用的调用是自制的。 Lexer,解析器和代码生成器是手写的。 发出重新生成单个静态二进制代码的汇编代码。 它仅as汇编器而依赖,而ld作为链接器而依赖。 它仅由几个文件组成。 main.go-主编译器 runtime.go-运行时 runtime.s-低级别的运行时 lib /-库 设计 Lexer,解析器和AST ast,lexer和parser的设计和逻辑是从go/ast , go/scan