当前位置:当前位置:主页 > 计算机电子书 > 程序设计 > Go语言 pdf电子书
Go语言定制指南

Go语言定制指南 PDF 高质量版

  • 更新:2022-04-08
  • 大小:40.5 MB
  • 类别:Go语言
  • 作者:柴树杉、史斌、丁尔男
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

Go语言定制指南》是由人民邮电出版社出版的一本关于Go语言方面的书籍,作者是柴树杉、史斌、丁尔男,主要介绍了关于Go语言、Go语言指南方面的知识内容,目前在Go语言类书籍综合评分为:7.1分。

书籍介绍

Go语言程序设计与实现教程,Go语言编程实战自学,剖析Go语言底层运行机制,学习编译器原理,提升编程技艺,提高编写效率,附赠源代码

编辑推荐

1.深入浅出,接触核心

理解Go语言语法树的工作原理,提升编程技艺,学习编译器的原理与实现,编写更效率的代码;通过理解简单的“凹语言”,深刻理解Go语言特性,获得自制一门编程语言的启发。

2.内容针对性与专业性强

本书面向已经熟练掌握Go语言并在进行项目开发的程序员,也适合想深入了解Go语言底层运行机制的程序员阅读,同时可作为对编程语言/编译器有兴趣并想进行实际项目实践的程序员的参考书。

内容简介

Go语言语法树是Go语言源文件的另一种语义等价的表现形式,Go语言自带的gofmt和godoc等命令都是建立在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.3FileSet和File6
  • 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.7if/else分支语句106
  • 10.8for循环108
  • 10.9类型断言111
  • 10.10go语句和defer语句113
  • 10.11小结114
  • 第11章类型检查115
  • 11.1语义错误115
  • 11.2go/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.4go/ssa包的架构136
  • 13.5小结138
  • 第14章凹语言139
  • 14.1Hello,凹语言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安装LLVM171
  • 15.3printf函数172
  • 15.4简单的四则运算175
  • 15.5比较运算176
  • 15.6分支与循环177
  • 15.7基本块180
  • 15.8PHI指令182
  • 15.9有限循环184
  • 15.10小结185
  • 第16章LLVM示例187
  • 16.1W语言187
  • 16.2W语言编译器wcc的设计189
  • 16.3W语言编译器wcc的实现191
  • 16.4W语言的代码示例198
  • 16.5小结200
  • 后记201

资源获取

相关资源

网友留言