科技
类型
9.3
豆瓣评分
可以朗读
语音朗读
206千字
字数
2020-09-01
发行日期
展开全部
主编推荐语
资深Wasm技术和虚拟机技术专家撰写,从原理、技术、规范3维度带你全面解读Wasm。
内容简介
WebAssembly是栈式虚拟机和字节码技术的最新应用,在Web开发、后端开发、区块链等领域大显身手,越来越受欢迎。
本书是WebAssembly入门和进阶的必读书,它不仅对WebAssembly的工作原理、核心技术和规范进行了全面的剖析和解读,而且给出了实现WebAssembly解释器和AOT编译器的思路和代码。
通过阅读本书,你不仅可以理解WebAssembly核心原理,还可以学习如何实现WebAssembly解释器和AOT编译器。即收获了“鱼”,又学会了“渔”。
目录
- 版权信息
- 前言
- 第一部分 概述
- 第1章 Wasm介绍
- 1.1 Wasm简史
- 1.2 Wasm简介
- 1.3 准备工作
- 1.4 你好Wasm
- 1.5 本章小结
- 第二部分 二进制和文本格式
- 第2章 二进制格式
- 2.1 二进制格式介绍
- 2.1.1 Wasm二进制格式总体结构
- 2.1.2 索引空间
- 2.1.3 实体类型
- 2.2 二进制格式分析
- 2.2.0 魔数和版本号
- 2.2.1 类型段
- 2.2.2 导入段
- 2.2.3 函数段
- 2.2.4 表段
- 2.2.5 内存段
- 2.2.6 全局段
- 2.2.7 导出段
- 2.2.8 起始段
- 2.2.9 元素段
- 2.2.10 代码段
- 2.2.11 数据段
- 2.2.12 自定义段
- 2.3 二进制格式解码
- 2.3.1 LEB128介绍
- 2.3.2 解码基本类型
- 2.3.3 解码向量类型
- 2.3.4 处理tag
- 2.3.5 解码代码项和表达式
- 2.3.6 解码整体结构
- 2.3.7 处理错误情况
- 2.4 实现dump命令
- 2.5 本章小结
- 第3章 指令集
- 3.1 指令集介绍
- 3.1.1 操作码
- 3.1.2 助记符
- 3.1.3 立即数
- 3.1.4 操作数
- 3.2 指令分析
- 3.2.1 数值指令
- 3.2.2 变量指令
- 3.2.3 内存指令
- 3.2.4 结构化控制指令
- 3.2.5 跳转指令
- 3.2.6 函数调用指令
- 3.3 指令解码
- 3.4 完善dump命令
- 3.5 本章小结
- 第4章 文本格式
- 4.1 基本结构
- 4.1.1 类型域
- 4.1.2 导入和导出域
- 4.1.3 函数域
- 4.1.4 表域和元素域
- 4.1.5 内存域和数据域
- 4.1.6 全局域
- 4.1.7 起始域
- 4.2 指令
- 4.2.1 普通形式
- 4.2.2 折叠形式
- 4.3 本章小结
- 第三部分 虚拟机和解释器
- 第5章 操作数栈
- 5.1 操作数栈
- 5.2 虚拟机
- 5.2.1 指令循环
- 5.2.2 指令分派
- 5.3 参数指令
- 5.3.1 drop指令
- 5.3.2 select指令
- 5.4 数值指令
- 5.4.1 常量指令
- 5.4.2 测试指令
- 5.4.3 比较指令
- 5.4.4 一元算术指令
- 5.4.5 二元算术指令
- 5.4.6 类型转换指令
- 5.5 本章效果
- 5.6 本章小结
- 第6章 内存
- 6.1 内存介绍
- 6.2 内存实现
- 6.3 内存指令
- 6.3.1 size和grow指令
- 6.3.2 加载指令
- 6.3.3 存储指令
- 6.4 本章效果
- 6.5 本章小结
- 第7章 函数调用(上)
- 7.1 函数调用介绍
- 7.2 函数调用实现
- 7.2.1 增强操作数栈
- 7.2.2 添加调用栈
- 7.2.3 增强虚拟机
- 7.2.4 call指令
- 7.3 局部变量指令
- 7.3.1 local.get指令
- 7.3.2 local.set指令
- 7.3.3 local.tee指令
- 7.4 全局变量指令
- 7.4.1 global.get指令
- 7.4.2 global.set指令
- 7.5 本章效果
- 7.6 本章小结
- 第8章 控制指令
- 8.1 控制指令介绍
- 8.1.1 跳转标签
- 8.1.2 跳转标签索引
- 8.1.3 块类型
- 8.2 控制指令实现
- 8.2.1 block和loop指令
- 8.2.2 if指令
- 8.2.3 br指令
- 8.2.4 br_if指令
- 8.2.5 br_table指令
- 8.2.6 return指令
- 8.2.7 unreachable和nop指令
- 8.3 本章效果
- 8.4 本章小结
- 第9章 函数调用(下)
- 9.1 本地函数调用
- 9.1.1 本地函数介绍
- 9.1.2 统一两种函数
- 9.1.3 调用本地函数
- 9.1.4 链接本地函数
- 9.1.5 测试本节代码
- 9.2 间接函数调用
- 9.2.1 间接函数调用介绍
- 9.2.2 实现表
- 9.2.3 初始化表
- 9.2.4 call_indirect指令
- 9.2.5 测试本节代码
- 9.3 本章小结
- 第10章 链接和实例化
- 10.1 定义实例接口
- 10.2 实现实例接口
- 10.2.1 函数
- 10.2.2 表
- 10.2.3 全局变量
- 10.2.4 虚拟机
- 10.3 实例化模块
- 10.4 本章效果
- 10.5 本章小结
- 第11章 错误处理和验证
- 11.1 各种错误
- 11.1.1 解码错误
- 11.1.2 结构错误
- 11.1.3 实例化错误
- 11.1.4 运行时错误
- 11.2 验证整体结构
- 11.3 验证函数字节码
- 11.3.1 数据结构
- 11.3.2 操作数栈
- 11.3.3 控制栈
- 11.3.4 验证指令
- 11.4 本章效果
- 11.5 本章小结
- 第四部分 进阶
- 第12章 编译为Wasm
- 12.1 控制指令
- 12.2 参数指令
- 12.3 变量指令
- 12.4 内存指令
- 12.5 数值指令
- 12.6 本章小结
- 第13章 AOT编译器
- 13.1 AOT介绍
- 13.2 编译模块
- 13.3 编译函数
- 13.3.1 内部函数
- 13.3.2 外部函数
- 13.3.3 导出函数
- 13.3.4 辅助方法
- 13.4 编译指令
- 13.4.1 参数指令
- 13.4.2 变量指令
- 13.4.3 内存指令
- 13.4.4 数值指令
- 13.4.5 结构化控制指令
- 13.4.6 跳转指令
- 13.4.7 函数调用指令
- 13.5 本章效果
- 13.6 本章小结
- 第14章 提案和前景
- 14.1 提案
- 14.1.1 多块内存
- 14.1.2 内存块操作
- 14.1.3 引用类型
- 14.1.4 尾递归调用
- 14.1.5 异常处理
- 14.1.6 多线程支持
- 14.1.7 其他提案
- 14.2 前景
- 附录A Wasm指令表
- 附录B 二进制格式
- 附录C WAT语法
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。