Go语言定制指南

Go语言定制指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2022-04
版次: 1
ISBN: 9787115584410
定价: 79.90
装帧: 其他
开本: 其他
纸张: 胶版纸
页数: 202页
字数: 193千字
4人买过
  • 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 开源项目贡献者,拥有这两个项目官方代码仓库的提交权限,目前两个项目的提交记录都超过100次。他在全球Go贡献者榜上长期排名TOP50,目前致力于国产芯片软件生态系统的构建工作。 丁尔男,Go/C/Web前端技术爱好者,长年从事3D开发工作,热衷于性能优化。他目前在武汉航天远景科技股份有限公司分管3D相关产品的开发工作。 第 1章 词法单元 1

    1.1 词法单元简介 2

    1.2 表示词法单元的数据类型 3

    1.3 FileSet和File 6

    1.4 解析词法单元 7

    1.5 位置信息 10

    1.6 小结 11

    第 2章 基础字面值 13

    2.1 基础字面值的定义 13

    2.2 基础字面值的语法树结构 15

    2.3 构造基础字面值 16

    2.4 解析基础字面值 17

    2.5 标识符字面值 18

    2.6 小结 19

    第3章 基础表达式 21

    3.1 语法规范 21

    3.2 解析表达式 22

    3.3 求值表达式 25

    3.4 标识符:为表达式引入变量 26

    3.5 小结 28

    第4章 代码结构 29

    4.1 目录结构和包结构 29

    4.2 文件结构 30

    4.3 诊断语法树 34

    4.4 小结 36

    第5章 通用声明 39

    5.1 导入声明 39

    5.2 类型声明 42

    5.3 常量声明 44

    5.4 变量声明 46

    5.5 声明分组 48

    5.6 小结 49

    第6章 函数声明 51

    6.1 语法规范 51

    6.2 函数声明和方法声明 52

    6.3 参数列表和返回值列表 54

    6.4 小结 55

    第7章 复合类型 57

    7.1 语法规范 57

    7.2 基础类型 58

    7.3 指针类型 61

    7.4 数组类型 63

    7.5 切片类型 66

    7.6 结构体类型 67

    7.7 映射类型 70

    7.8 管道类型 71

    7.9 函数类型 72

    7.10 接口类型 73

    7.11 小结 75

    第8章 更复杂的字面值 77

    8.1 语法规范 77

    8.2 函数字面值 78

    8.3 复合字面值的语法 80

    8.4 数组字面值和切片字面值 81

    8.5 结构体字面值 83

    8.6 映射字面值 85

    8.7 小结 86

    第9章 复合表达式 87

    9.1 表达式语法 87

    9.2 类型转换和函数调用 88

    9.3 点选择运算 90

    9.4 索引运算 91

    9.5 切片运算 92

    9.6 类型断言 93

    9.7 小结 95

    第 10章 语句块和语句 97

    10.1 语法规范 97

    10.2 空语句块 98

    10.3 表达式语句 100

    10.4 返回语句 101

    10.5 声明语句 103

    10.6 短声明语句和多赋值语句 104

    10.7 if/else分支语句 106

    10.8 for循环 108

    10.9 类型断言 111

    10.10 go语句和defer语句 113

    10.11 小结 114

    第 11章 类型检查 115

    11.1 语义错误 115

    11.2 go/types包 116

    11.3 跨包的类型检查 118

    11.4 小结 122

    第 12章 语义信息 123

    12.1 名字空间 123

    12.2 整体架构 127

    12.3 小结 128

    第 13章 静态单赋值形式 129

    13.1 静态单赋值简介 129

    13.2 生成静态单赋值 130

    13.3 静态单赋值解释执行 134

    13.4 go/ssa包的架构 136

    13.5 小结 138

    第 14章 凹语言 139

    14.1 Hello,凹语言 139

    14.2 访问全局变量 144

    14.3 调用自定义函数 153

    14.4 四则运算 157

    14.5 分支控制 160

    14.6 导入函数 165

    14.7 小结 168

    第 15章 LLVM简介 169

    15.1 背景介绍 169

    15.2 安装LLVM 171

    15.3 printf函数 172

    15.4 简单的四则运算 175

    15.5 比较运算 176

    15.6 分支与循环 177

    15.7 基本块 180

    15.8 PHI指令 182

    15.9 有限循环 184

    15.10 小结 185

    第 16章 LLVM示例 187

    16.1 W语言 187

    16.2 W语言编译器wcc的设计 189

    16.3 W语言编译器wcc的实现 191

    16.4 W语言的代码示例 198

    16.5 小结 200

    后记 201
  • 内容简介:
    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 开源项目贡献者,拥有这两个项目官方代码仓库的提交权限,目前两个项目的提交记录都超过100次。他在全球Go贡献者榜上长期排名TOP50,目前致力于国产芯片软件生态系统的构建工作。 丁尔男,Go/C/Web前端技术爱好者,长年从事3D开发工作,热衷于性能优化。他目前在武汉航天远景科技股份有限公司分管3D相关产品的开发工作。
  • 目录:
    第 1章 词法单元 1

    1.1 词法单元简介 2

    1.2 表示词法单元的数据类型 3

    1.3 FileSet和File 6

    1.4 解析词法单元 7

    1.5 位置信息 10

    1.6 小结 11

    第 2章 基础字面值 13

    2.1 基础字面值的定义 13

    2.2 基础字面值的语法树结构 15

    2.3 构造基础字面值 16

    2.4 解析基础字面值 17

    2.5 标识符字面值 18

    2.6 小结 19

    第3章 基础表达式 21

    3.1 语法规范 21

    3.2 解析表达式 22

    3.3 求值表达式 25

    3.4 标识符:为表达式引入变量 26

    3.5 小结 28

    第4章 代码结构 29

    4.1 目录结构和包结构 29

    4.2 文件结构 30

    4.3 诊断语法树 34

    4.4 小结 36

    第5章 通用声明 39

    5.1 导入声明 39

    5.2 类型声明 42

    5.3 常量声明 44

    5.4 变量声明 46

    5.5 声明分组 48

    5.6 小结 49

    第6章 函数声明 51

    6.1 语法规范 51

    6.2 函数声明和方法声明 52

    6.3 参数列表和返回值列表 54

    6.4 小结 55

    第7章 复合类型 57

    7.1 语法规范 57

    7.2 基础类型 58

    7.3 指针类型 61

    7.4 数组类型 63

    7.5 切片类型 66

    7.6 结构体类型 67

    7.7 映射类型 70

    7.8 管道类型 71

    7.9 函数类型 72

    7.10 接口类型 73

    7.11 小结 75

    第8章 更复杂的字面值 77

    8.1 语法规范 77

    8.2 函数字面值 78

    8.3 复合字面值的语法 80

    8.4 数组字面值和切片字面值 81

    8.5 结构体字面值 83

    8.6 映射字面值 85

    8.7 小结 86

    第9章 复合表达式 87

    9.1 表达式语法 87

    9.2 类型转换和函数调用 88

    9.3 点选择运算 90

    9.4 索引运算 91

    9.5 切片运算 92

    9.6 类型断言 93

    9.7 小结 95

    第 10章 语句块和语句 97

    10.1 语法规范 97

    10.2 空语句块 98

    10.3 表达式语句 100

    10.4 返回语句 101

    10.5 声明语句 103

    10.6 短声明语句和多赋值语句 104

    10.7 if/else分支语句 106

    10.8 for循环 108

    10.9 类型断言 111

    10.10 go语句和defer语句 113

    10.11 小结 114

    第 11章 类型检查 115

    11.1 语义错误 115

    11.2 go/types包 116

    11.3 跨包的类型检查 118

    11.4 小结 122

    第 12章 语义信息 123

    12.1 名字空间 123

    12.2 整体架构 127

    12.3 小结 128

    第 13章 静态单赋值形式 129

    13.1 静态单赋值简介 129

    13.2 生成静态单赋值 130

    13.3 静态单赋值解释执行 134

    13.4 go/ssa包的架构 136

    13.5 小结 138

    第 14章 凹语言 139

    14.1 Hello,凹语言 139

    14.2 访问全局变量 144

    14.3 调用自定义函数 153

    14.4 四则运算 157

    14.5 分支控制 160

    14.6 导入函数 165

    14.7 小结 168

    第 15章 LLVM简介 169

    15.1 背景介绍 169

    15.2 安装LLVM 171

    15.3 printf函数 172

    15.4 简单的四则运算 175

    15.5 比较运算 176

    15.6 分支与循环 177

    15.7 基本块 180

    15.8 PHI指令 182

    15.9 有限循环 184

    15.10 小结 185

    第 16章 LLVM示例 187

    16.1 W语言 187

    16.2 W语言编译器wcc的设计 189

    16.3 W语言编译器wcc的实现 191

    16.4 W语言的代码示例 198

    16.5 小结 200

    后记 201
查看详情
相关图书 / 更多
Go语言定制指南
Go专家编程(第2版)
任洪彩
Go语言定制指南
Go编程进阶实战:开发命令行应用、HTTP应用和gRPC应用
[澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译;上海碳泽信息科技有限公司 审校
Go语言定制指南
Go语言从入门到项目实战(视频版)
刘瑜 萧文翰 董树南 著
Go语言定制指南
Go语言从入门到项目实践(超值版)
余建熙
Go语言定制指南
Go语言学习指南:惯例模式与编程实践
乔恩·博德纳(Jon Bodner)
Go语言定制指南
Go语言程序设计-微课视频版
肖建良;赵文丽
Go语言定制指南
Go语言程序设计项目化教程(微课版)
谭旭;史律;钟祥永
Go语言定制指南
Go程序开发实战宝典
穆旭东 谭庆丰 楚秦 编著;猿媛之家 组编
Go语言定制指南
Go语言与区块链开发(计算机类普通高等教育双一流课程系列教材)
冯柳平、陈澜祯、袁贵春、卢婷婷 编
Go语言定制指南
Go语言之路
李文周
Go语言定制指南
Go语言Hyperledger区块链开发实战
李晓黎
Go语言定制指南
Go语言设计模式(双色版)
廖显东
您可能感兴趣 / 更多
Go语言定制指南
Go语言高级编程
柴树杉、曹春晖 著
Go语言定制指南
WebAssembly标准入门
柴树杉;丁尔男