内容简介
Go语言语法树是Go语言源文件的另一种语义等价的表现形式,Go语言自带的gofmt和godoc等命令都是建立在Go语言语法树基础之上的分析工具。本书从Go语言语法树出发,重新审视Go语言源文件,阐述定制Go语言的核心技术。书中通过对go/ast、go/ssa等包的分析,-步步深入Go语言核心,最后简要介绍LLVM,读者可以结合IIVM和Go语言语法树按需定制,创造一个语法与Go语言语法头似的简单的编程语言及与其对应的编译器,达到掌握自制编程语言和编译器的目的。本书面向已经熟练掌握Go语言并在进行项目开发的程序员,也适合想深入了解Go语言底层运行机制的程序员阅读,同时可作为对编程语言/编译器有兴趣并想进行实际项目实践的程序员的参考书。
AI简介
这是一本深入剖析Go语言核心机制,从语法树出发,逐步深入探讨Go语言源文件结构,并引导读者定制Go语言核心技术的著作。该书以Go语言语法树为切入点,详细阐述了词法单元、基础字面值、基础表达式、代码结构、通用声明、函数声明、复合类型等基本概念,并深入探讨了它们的定义与重要性。
书中首先介绍了Go语言代码结构的解析与理解,包括目录结构、包结构和文件内部的代码结构。然后,深入讲解了基础字面值定义,包括整数字面值、浮点数字面值、复数字面值、符文字面值和字符串字面值等。接着,深入讲解了基础表达式的运算符和操作数,包括一元运算符和二元运算符,以及数值型字面值和标识符等。
书中还深入讲解了函数声明的语法规范,包括函数类型、函数声明、方法声明、短声明语句和多赋值语句,以及复合类型等。此外,还深入讲解了指针类型的基本概念,包括指针类型的基本概念,以及指针类型的解析示例等。
书中还深入讲解了类型检查的重要性,包括类型检查的重要性,以及go/types包的使用等。此外,还深入讲解了静态单赋值解释执行,包括静态单赋值解释执行的概念,以及go/ssa包的整体架构等。
书中还深入讲解了凹语言的定义与特点,