商品详情
书名:Go语言定制指南
定*:79.9
ISBN:9787**55844*0
作者:柴树杉,史斌,丁尔男
版次:第*版
出版时间:2022-04
内容提要:
Go 语言语法树是 Go 语言源文件的另*种语义等*的表现形式,Go 语言自带的go fmt 和 go doc等命令*是建立在 Go 语言语法树基础之上的分析工具。本书从Go 语言语法树出发,重新审视Go 语言源文件,阐述定制Go 语言的核心技术。书中通过对 go/ast、go/ssa 等*的分析,-步步深入Go 语言核心,最后简要介绍 LLVM,读者可以结合 IIVM 和 Go 语言语法树按需定制,*造*个语法与 Go 语言语法头似的简单的编程语言及与其对应的编译器,达到掌握自制编程语言和编译器的目的。 本书面向已经熟练掌握 Go 语言并在进行项目开发的程序员,也适合想深入了解 Go 语言底层运行机制的程序员阅读,同时可作为对编程语言/编译器有兴趣并想进行实际项目实践的程序员的参考书。
作者简介:
柴树杉,Go/C/汇编语言爱好者,《Go语言*级编程》作者之*,关注与汇编语言相关的底层技术。他目前在蚂蚁集团从事*域*定语言(DSL)的设计和开发工作。 史斌,有十余年编译器和虚拟机开发经验。Go和LLVM 开源项目贡献者,拥有这两个项目官方代码仓库的提交权限,目前两个项目的提交记录**过*00次。他在*球Go贡献者榜上长期排名*50,目前*力于*产芯片软件生态系统的构建工作。 丁尔男,Go/C/Web前端技术爱好者,长年从事3D开发工作,热衷于性能*化。他目前在武汉航天远景科技股份有限公司分管3D相关产品的开发工作。
目录:
第 *章 词法单元 *
*.* 词法单元简介 2
*.2 表示词法单元的数据类型 3
*.3 FileSet和File 6
*.4 解析词法单元 7
*.5 位置信息 *0
*.6 小结 **
第 2章 基础字面值 *3
2.* 基础字面值的定义 *3
2.2 基础字面值的语法树结构 *5
2.3 构造基础字面值 *6
2.4 解析基础字面值 *7
2.5 标识符字面值 *8
2.6 小结 *9
第3章 基础表达式 2*
3.* 语法规范 2*
3.2 解析表达式 22
3.3 求值表达式 25
3.4 标识符:为表达式引入变量 26
3.5 小结 28
第4章 代码结构 29
4.* 目录结构和*结构 29
4.2 文件结构 30
4.3 诊断语法树 34
4.4 小结 36
第5章 通用声明 39
5.* 导入声明 39
5.2 类型声明 42
5.3 常量声明 44
5.4 变量声明 46
5.5 声明分组 48
5.6 小结 49
第6章 函数声明 5*
6.* 语法规范 5*
6.2 函数声明和方法声明 52
6.3 参数列表和返回值列表 54
6.4 小结 55
第7章 复合类型 57
7.* 语法规范 57
7.2 基础类型 58
7.3 指针类型 6*
7.4 数组类型 63
7.5 切片类型 66
7.6 结构体类型 67
7.7 映射类型 70
7.8 管道类型 7*
7.9 函数类型 72
7.*0 接口类型 73
7.** 小结 75
第8章 更复杂的字面值 77
8.* 语法规范 77
8.2 函数字面值 78
8.3 复合字面值的语法 80
8.4 数组字面值和切片字面值 8*
8.5 结构体字面值 83
8.6 映射字面值 85
8.7 小结 86
第9章 复合表达式 87
9.* 表达式语法 87
9.2 类型转换和函数调用 88
9.3 点选择运算 90
9.4 索引运算 9*
9.5 切片运算 92
9.6 类型断言 93
9.7 小结 95
第 *0章 语句块和语句 97
*0.* 语法规范 97
*0.2 空语句块 98
*0.3 表达式语句 *00
*0.4 返回语句 *0*
*0.5 声明语句 *03
*0.6 短声明语句和多赋值语句 *04
*0.7 if/else分支语句 *06
*0.8 for循环 *08
*0.9 类型断言 ***
*0.*0 go语句和defer语句 **3
*0.** 小结 **4
第 **章 类型检查 **5
**.* 语义错误 **5
**.2 go/types* **6
**.3 跨*的类型检查 **8
**.4 小结 *22
第 *2章 语义信息 *23
*2.* 名字空间 *23
*2.2 整体架构 *27
*2.3 小结 *28
第 *3章 静态单赋值形式 *29
*3.* 静态单赋值简介 *29
*3.2 生成静态单赋值 *30
*3.3 静态单赋值解释执行 *34
*3.4 go/ssa*的架构 *36
*3.5 小结 *38
第 *4章 凹语言 *39
*4.* Hello,凹语言 *39
*4.2 访问*局变量 *44
*4.3 调用自定义函数 *53
*4.4 四则运算 *57
*4.5 分支控制 *60
*4.6 导入函数 *65
*4.7 小结 *68
第 *5章 LLVM简介 *69
*5.* 背景介绍 *69
*5.2 安装LLVM *7*
*5.3 printf函数 *72
*5.4 简单的四则运算 *75
*5.5 比较运算 *76
*5.6 分支与循环 *77
*5.7 基本块 *80
*5.8 PHI指令 *82
*5.9 有限循环 *84
*5.*0 小结 *85
第 *6章 LLVM示例 *87
*6.* W语言 *87
*6.2 W语言编译器wcc的设计 *89
*6.3 W语言编译器wcc的实现 *9*
*6.4 W语言的代码示例 *98
*6.5 小结 200
后记 20*
定*:79.9
ISBN:9787**55844*0
作者:柴树杉,史斌,丁尔男
版次:第*版
出版时间:2022-04
内容提要:
Go 语言语法树是 Go 语言源文件的另*种语义等*的表现形式,Go 语言自带的go fmt 和 go doc等命令*是建立在 Go 语言语法树基础之上的分析工具。本书从Go 语言语法树出发,重新审视Go 语言源文件,阐述定制Go 语言的核心技术。书中通过对 go/ast、go/ssa 等*的分析,-步步深入Go 语言核心,最后简要介绍 LLVM,读者可以结合 IIVM 和 Go 语言语法树按需定制,*造*个语法与 Go 语言语法头似的简单的编程语言及与其对应的编译器,达到掌握自制编程语言和编译器的目的。 本书面向已经熟练掌握 Go 语言并在进行项目开发的程序员,也适合想深入了解 Go 语言底层运行机制的程序员阅读,同时可作为对编程语言/编译器有兴趣并想进行实际项目实践的程序员的参考书。
作者简介:
柴树杉,Go/C/汇编语言爱好者,《Go语言*级编程》作者之*,关注与汇编语言相关的底层技术。他目前在蚂蚁集团从事*域*定语言(DSL)的设计和开发工作。 史斌,有十余年编译器和虚拟机开发经验。Go和LLVM 开源项目贡献者,拥有这两个项目官方代码仓库的提交权限,目前两个项目的提交记录**过*00次。他在*球Go贡献者榜上长期排名*50,目前*力于*产芯片软件生态系统的构建工作。 丁尔男,Go/C/Web前端技术爱好者,长年从事3D开发工作,热衷于性能*化。他目前在武汉航天远景科技股份有限公司分管3D相关产品的开发工作。
目录:
第 *章 词法单元 *
*.* 词法单元简介 2
*.2 表示词法单元的数据类型 3
*.3 FileSet和File 6
*.4 解析词法单元 7
*.5 位置信息 *0
*.6 小结 **
第 2章 基础字面值 *3
2.* 基础字面值的定义 *3
2.2 基础字面值的语法树结构 *5
2.3 构造基础字面值 *6
2.4 解析基础字面值 *7
2.5 标识符字面值 *8
2.6 小结 *9
第3章 基础表达式 2*
3.* 语法规范 2*
3.2 解析表达式 22
3.3 求值表达式 25
3.4 标识符:为表达式引入变量 26
3.5 小结 28
第4章 代码结构 29
4.* 目录结构和*结构 29
4.2 文件结构 30
4.3 诊断语法树 34
4.4 小结 36
第5章 通用声明 39
5.* 导入声明 39
5.2 类型声明 42
5.3 常量声明 44
5.4 变量声明 46
5.5 声明分组 48
5.6 小结 49
第6章 函数声明 5*
6.* 语法规范 5*
6.2 函数声明和方法声明 52
6.3 参数列表和返回值列表 54
6.4 小结 55
第7章 复合类型 57
7.* 语法规范 57
7.2 基础类型 58
7.3 指针类型 6*
7.4 数组类型 63
7.5 切片类型 66
7.6 结构体类型 67
7.7 映射类型 70
7.8 管道类型 7*
7.9 函数类型 72
7.*0 接口类型 73
7.** 小结 75
第8章 更复杂的字面值 77
8.* 语法规范 77
8.2 函数字面值 78
8.3 复合字面值的语法 80
8.4 数组字面值和切片字面值 8*
8.5 结构体字面值 83
8.6 映射字面值 85
8.7 小结 86
第9章 复合表达式 87
9.* 表达式语法 87
9.2 类型转换和函数调用 88
9.3 点选择运算 90
9.4 索引运算 9*
9.5 切片运算 92
9.6 类型断言 93
9.7 小结 95
第 *0章 语句块和语句 97
*0.* 语法规范 97
*0.2 空语句块 98
*0.3 表达式语句 *00
*0.4 返回语句 *0*
*0.5 声明语句 *03
*0.6 短声明语句和多赋值语句 *04
*0.7 if/else分支语句 *06
*0.8 for循环 *08
*0.9 类型断言 ***
*0.*0 go语句和defer语句 **3
*0.** 小结 **4
第 **章 类型检查 **5
**.* 语义错误 **5
**.2 go/types* **6
**.3 跨*的类型检查 **8
**.4 小结 *22
第 *2章 语义信息 *23
*2.* 名字空间 *23
*2.2 整体架构 *27
*2.3 小结 *28
第 *3章 静态单赋值形式 *29
*3.* 静态单赋值简介 *29
*3.2 生成静态单赋值 *30
*3.3 静态单赋值解释执行 *34
*3.4 go/ssa*的架构 *36
*3.5 小结 *38
第 *4章 凹语言 *39
*4.* Hello,凹语言 *39
*4.2 访问*局变量 *44
*4.3 调用自定义函数 *53
*4.4 四则运算 *57
*4.5 分支控制 *60
*4.6 导入函数 *65
*4.7 小结 *68
第 *5章 LLVM简介 *69
*5.* 背景介绍 *69
*5.2 安装LLVM *7*
*5.3 printf函数 *72
*5.4 简单的四则运算 *75
*5.5 比较运算 *76
*5.6 分支与循环 *77
*5.7 基本块 *80
*5.8 PHI指令 *82
*5.9 有限循环 *84
*5.*0 小结 *85
第 *6章 LLVM示例 *87
*6.* W语言 *87
*6.2 W语言编译器wcc的设计 *89
*6.3 W语言编译器wcc的实现 *9*
*6.4 W语言的代码示例 *98
*6.5 小结 200
后记 20*
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...