成功加入购物车

去购物车结算 X
忻博的书店
  • 自己动手实现Lua:虚拟机、编译器和标准库

自己动手实现Lua:虚拟机、编译器和标准库

举报

正版书籍 高温消毒 放心购买 17点前订单当天发货 书名于图片不符时以图片为准

售价 25.00 2.8折

定价 ¥89.00 

品相 九品

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2024-01-17

    数量
    仅1件在售,欲购从速
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    • 商品详情
    • 店铺评价
    手机购买
    微信扫码访问
    • 图书条目信息

      自己动手实现Lua:虚拟机、编译器和标准库

      • 定价:  89.00
      • 装帧:  其他
      • 开本:  16开
      • 纸张:  胶版纸

      展开全部

      商品描述:
      前言

      第一部分 准备

      第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

      2.3 二进制chunk格式  15

      2.3.1 数据类型  16

      2.3.2 总体结构  17

      2.3.3 头部  18

      2.3.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.2.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.2.3 定义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.2.3 算术运算指令  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

      第10章 闭包和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.2.3 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

      第11章 元编程  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

      第12章 迭代器  223

      12.1 迭代器介绍  223

      12.2 next()函数  226

      12.2.1 修改luaTable结构体  227

      12.2.2 扩展Lua API  228

      12.2.3 实现next()函数  229

      12.3 通用for循环指令  229

      12.4 测试本章代码  232

      12.5 本章小结  234

      第13章 异常和错误处理  235

      13.1 异常和错误处理介绍  235

      13.2 异常和错误处理API  237

      13.2.1 Error()  238

      13.2.2 PCall()  239

      13.3 error()和pcall()函数  240

      13.4 测试本章代码  241

      13.5 本章小结  242

      第三部分 Lua语法和编译器

      第14章 词法分析  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

      第15章 抽象语法树  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

      第16章 语法分析  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

      第17章 代码生成  317

      17.1 定义funcInfo结构体  317

      17.1.1 常量表  318

      17.1.2 寄存器分配  319

      17.1.3 局部变量表  320

      17.1.4 Break表  323

      17.1.5 Upvalue表  324

      17.1.6 字节码  325

      17.1.7 其他信息  327

      1

      配送说明

      ...

      相似商品

      为你推荐

    本店分类
    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看