返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 醉染图书自己动手实现Lua 虚拟机、编译器和标准库9787111610229
  • 正版全新
    • 作者: 张秀宏著 | 张秀宏编 | 张秀宏译 | 张秀宏绘
    • 出版社: 机械工业出版社
    • 出版时间:2018-10-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    醉染图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 张秀宏著| 张秀宏编| 张秀宏译| 张秀宏绘
    • 出版社:机械工业出版社
    • 出版时间:2018-10-01
    • 版次:1
    • 印次:1
    • 字数:null千字
    • 页数:412
    • 开本:16开
    • ISBN:9787111610229
    • 版权提供:机械工业出版社
    • 作者:张秀宏
    • 著:张秀宏
    • 装帧:平装
    • 印次:1
    • 定价:89.00
    • ISBN:9787111610229
    • 出版社:机械工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2018-10-01
    • 页数:412
    • 外部编号:1201769482
    • 版次:1
    • 成品尺寸:暂无

       前言

    部分 准备

    章 准备工作 3

    1.1 准备开发环境 3

    1.1.1 操作系统 3

    1.1.2 安装Lua 4

    1.1.3 安装Go 4

    1.2 准备目录结构 4

    1.3 本章小结 6

    第二部分 Lua虚拟机和Lua API

    第2章 二进制chunk 9

    2.1 什么是二进制chunk 10

    2.2 luac命令介绍 11

    2.2.1 编译Lua源文件 11

    2.2.2 查看二进制chunk 13

    . 二进制chunk格式 15

    ..1 数据类型 16

    ..2 总体结构 17

    .. 头部 18

    ..4 函数原型 22

    2.4 解析二进制chunk 27

    2.4.1 读取基本数据类型 28

    2.4.2 检查头部 29

    2.4.3 读取函数原型 30

    2.5 测试本章代码 33

    2.6 本章小结 36

    第3章 指令集 37

    3.1 指令集介绍 37

    3.2 指令编码格式 38

    3.2.1 编码模式 38

    3.2.2 操作码 39

    3.. 操作数 40

    3.2.4 指令表 41

    3.3 指令解码 42

    3.4 测试本章代码 44

    3.5 本章小结 47

    第4章 Lua API 49

    4.1 Lua API介绍 49

    4.2 Lua栈 51

    4.2.1 Lua数据类型和值 51

    4.2.2 栈索引 54

    4.. 定义luaStack结构体 54

    4.3 Lua State 57

    4.3.1 定义LuaState接口 57

    4.3.2 定义luaState结构体 58

    4.3.3 基础栈操纵方法 59

    4.3.4 Push方法 64

    4.3.5 Access方法 65

    4.4 测试本章代码 69

    4.5 本章小结 70

    第5章 Lua运算符 71

    5.1 Lua运算符介绍 71

    5.2 自动类型转换 75

    5.3 扩展LuaState接口 79

    5.3.1 Arith()方法 80

    5.3.2 Compare()方法 83

    5.3.3 Len()方法 85

    5.3.4 Concat()方法 86

    5.4 测试本章代码 87

    5.5 本章小结 88

    第6章 虚拟机雏形 89

    6.1 添加LuaVM接口 89

    6.1.1 定义LuaVM接口 91

    6.1.2 改造luaState结构体 92

    6.1.3 实现LuaVM接口 93

    6.2 实现Lua虚拟机指令 94

    6.2.1 移动和跳转指令 94

    6.2.2 加载指令 96

    6.. 算术运算指令 101

    6.2.4 长度和拼接指令 103

    6.2.5 比较指令 106

    6.2.6 逻辑运算指令 107

    6.2.7 for循环指令 110

    6.3 指令分派 113

    6.4 测试本章代码 115

    6.5 本章小结 118

    第7章 表 119

    7.1 表介绍 119

    7.2 表内部实现 121

    7.3 表相关API 125

    7.3.1 Get方法 126

    7.3.2 Set方法 129

    7.4 表相关指令 131

    7.4.1 NEWTABLE 131

    7.4.2 GETTABLE 133

    7.4.3 SETTABLE 135

    7.4.4 SETLIST 136

    7.5 测试本章代码 138

    7.6 本章小结 140

    第8章 函数调用 141

    8.1 函数调用介绍 141

    8.2 函数调用栈 143

    8.2.1 调用帧实现 144

    8.2.2 调用栈实现 145

    8.3 函数调用API 147

    8.3.1 Load() 148

    8.3.2 Call() 149

    8.4 函数调用指令 152

    8.4.1 CLOSURE 152

    8.4.2 CALL 153

    8.4.3 RETURN 157

    8.4.4 VARARG 158

    8.4.5 TAILCALL 159

    8.4.6 SELF 160

    8.4.7 扩展LuaVM接口 162

    8.4.8 改进SETLIST指令 163

    8.5 测试本章代码 164

    8.6 本章小结 166

    第9章 Go函数调用 167

    9.1 Go函数登场 167

    9.1.1 添加Go函数类型 168

    9.1.2 扩展Lua API 169

    9.1.3 调用Go函数 170

    9.2 Lua注册表 172

    9.2.1 添加注册表 172

    9.2.2 操作注册表 173

    9.3 全局环境 175

    9.3.1 使用API操作全局环境 175

    9.3.2 在Lua里访问全局环境 178

    9.4 测试本章代码 179

    9.5 本章小结 181

    0章 闭包和Upvalue 183

    10.1 闭包和Upvalue介绍 183

    10.1.1 背景知识 183

    10.1.2 Upvalue介绍 185

    10.1.3 全局变量 187

    10.2 Upvalue底层支持 189

    10.2.1 修改closure结构体 189

    10.2.2 Lua闭包支持 191

    10.. Go闭包支持 192

    10.3 Upvalue相关指令 195

    10.3.1 GETUPVAL 195

    10.3.2 SETUPVAL 196

    10.3.3 GETTABUP 197

    10.3.4 SETTABUP 199

    10.3.5 JMP 200

    10.4 测试本章代码 202

    10.5 本章小结 203

    1章 元编程 205

    11.1 元表和元方法介绍 205

    11.1.1 元表 206

    11.1.2 元方法 206

    11.2 支持元表 207

    11.3 调用元方法 208

    11.3.1 算术元方法 209

    11.3.2 长度元方法 211

    11.3.3 拼接元方法 211

    11.3.4 比较元方法 212

    11.3.5 索引元方法 214

    11.3.6 函数调用元方法 216

    11.4 扩展Lua API 217

    11.4.1 GetMetatable() 218

    11.4.2 SetMetatable() 218

    11.5 测试本章代码 219

    11.6 本章小结 222

    2章 迭代器 2

    12.1 迭代器介绍 2

    12.2 next()函数 226

    12.2.1 修改luaTable结构体 227

    12.2.2 扩展Lua API 228

    12.. 实现next()函数 229

    1. 通用for循环指令 229

    12.4 测试本章代码 2

    12.5 本章小结 4

    3章 异常和错误处理 5

    13.1 异常和错误处理介绍 5

    13.2 异常和错误处理API

    13.2.1 Error()

    13.2.2 PCall()

    13.3 error()和pcall()函数 240

    13.4 测试本章代码 241

    13.5 本章小结 242

    第三部分 Lua语法和编译器

    4章 词法分析 245

    14.1 编译器介绍 245

    14.2 Lua词法介绍 247

    14.3 实现词法分析器 251

    14.3.1 定义Token类型 252

    14.3.2 空白字符 254

    14.3.3 注释 256

    14.3.4 分隔符和运算符 256

    14.3.5 长字符串字面量 258

    14.3.6 短字符串字面量 259

    14.3.7 数字字面量 262

    14.3.8 标识符和关键字 263

    14.4 LookAhead()和方法 264

    14.5 测试本章代码 265

    14.6 本章小结 267

    5章 抽象语法树 269

    15.1 抽象语法树介绍 269

    15.2 Chunk和块 270

    15.3 语句 272

    15.3.1 简单语句 273

    15.3.2 while和repeat语句 273

    15.3.3 if语句 274

    15.3.4 数值for循环语句 275

    15.3.5 通用for循环语句 275

    15.3.6 局部变量声明语句 276

    15.3.7 赋值语句 277

    15.3.8 非局部函数定义语句 278

    15.3.9 局部函数定义语句 279

    15.4 表达式 280

    15.4.1 简单表达式 280

    15.4.2 运算符表达式 281

    15.4.3 表构造表达式 281

    15.4.4 函数定义表达式 282

    15.4.5 前缀表达式 283

    15.4.6 圆括号表达式 284

    15.4.7 表访问表达式 284

    15.4.8 函数调用表达式 285

    15.5 本章小结 286

    6章 语法分析 287

    16.1 语法分析介绍 287

    16.1.1 歧义 288

    16.1.2 前瞻和回溯 289

    16.1.3 解析方式 290

    16.2 解析块 290

    16.3 解析语句 293

    16.3.1 简单语句 294

    16.3.2 if语句 296

    16.3.3 for循环语句 297

    16.3.4 局部变量声明和函数定义语句 299

    16.3.5 赋值和函数调用语句 300

    16.3.6 非局部函数定义语句 302

    16.4 解析表达式 303

    16.4.1 运算符表达式 304

    16.4.2 非运算符表达式 306

    16.4.3 函数定义表达式 307

    16.4.4 表构造表达式 308

    16.4.5 前缀表达式 310

    16.4.6 圆括号表达式 311

    16.4.7 函数调用表达式 312

    16.4.8 表达式优化 313

    16.5 测试本章代码 315

    16.6 本章小结 316

    7章 代码生成 317

    17.1 定义funcInfo结构体 317

    17.1.1 常量表 318

    17.1.2 寄存器分配 319

    17.1.3 局部变量表 320

    17.1.4 Break表 3

    17.1.5 Upvalue表 324

    17.1.6 字节码 325

    17.1.7 信息 327

    17.2 编译块 327

    17.3 编译语句 329

    17.3.1 简单语句 330

    17.3.2 while和repeat语句 331

    17.3.3 if语句 333

    17.3.4 for循环语句 334

    17.3.5 局部变量声明语句 335

    17.3.6 赋值语句 337

    17.4 编译表达式 339

    17.4.1 函数定义表达式 340

    17.4.2 表构造表达式 341

    17.4.3 运算符表达式 343

    17.4.4 名字和表访问表达式 345

    17.4.5 函数调用表达式 346

    17.5 生成函数原型 347

    17.6 使用编译器 349

    17.7 测试本章代码 350

    17.8 本章小结 350

    第四部分 Lua标准库

    8章 辅API和基础库 353

    18.1 Lua标准库介绍 353

    18.2 辅API 355

    18.2.1 版方法 357

    18.2.2 加载方法 358

    18.. 参数检查方法 359

    18.2.4 标准库开启方法 360

    18.3 基础库 361

    18.3.1 基础库介绍 362

    18.3.2 基础库实现 362

    18.4 测试本章代码 365

    18.5 本章小结 366

    9章 工具库 367

    19.1 数学库 367

    19.2 表库 369

    19.3 字符串库 372

    19.4 UTF-8库 374

    19.5 OS库 376

    19.6 本章小结 379

    第20章 包和模块 381

    20.1 包和模块介绍 381

    20.2 实现包库 386

    20.3 测试本章代码 391

    20.4 本章小结 392

    2章 协程 393

    21.1 协程介绍 393

    21.2 协程API 396

    21.2.1 支持线程类型 396

    21.2.2 支持协程操作 398

    21.3 实现协程库 400

    21.4 测试本章代码 403

    21.5 本章小结 404

    附录A Lua虚拟机指令集 405

    附录B Lua语法EBNF描述 407

    后记 409

    张秀宏,服务器开发,有多年的Java和游戏服务器开发和架构经验,对不错语言虚拟机有很好深入的研究。曾在EA、乐元素等游戏公司担任不错服务器,现任某创业公司架构师。曾于2016年6月出版《自己动手写Java虚拟机》一书,广受读者并多次重印。《自己动手实现Lua:虚拟机、编译器、标准库》是他时隔两年之后推出的又一力作。

      

      

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购