作品简介

WebAssembly是一种新兴的网页虚拟机标准,它的设计目标包括高可移植性、高安全性、高效率(包括载入效率和运行效率)、尽可能小的程序体积。本书详尽介绍了WebAssembly程序在JavaScript环境下的使用方法、WebAssembly汇编语言和二进制格式,给出了大量简单易懂的示例,同时以C/C++和Go语言开发环境为例,介绍了如何使用其他高级语言开发WebAssembly模块。

本书适合从事高性能Web前端开发、跨语言Web应用开发的技术人员学习参考,也可以作为WebAssembly标准参考手册随时查阅。

柴树杉,青云QingCloud高级软件工程师,Go语言和WebAssembly技术专家,著有《Go语言高级编程》等书。GitHub账号为chai2010。

丁尔男,Go语言爱好者,WebAssembly技术专家,常年从事三维渲染引擎开发,著有《C/C++面向WebAssembly编程》等书,现任武汉航天远景科技股份有限公司应用技术总监。GitHub账号为3dgen。

作品目录

  • 本书结构
  • 致谢
  • 资源与支持
  • 配套资源
  • 提交勘误
  • 与我们联系
  • 关于异步社区和异步图书
  • 第0章  WebAssembly诞生背景
  • 0.1 JavaScript简史
  • 0.2 asm.js的尝试
  • 0.3 WebAssembly的救赎
  • 第1章  JavaScript语言基础
  • 1.1  console 对象
  • 1.2 函数和闭包
  • 1.3  Promise 对象
  • 1.4 二进制数组
  • 第2章 WebAssembly快速入门
  • 2.1 准备工作
  • 2.2 首个例程
  • 2.3 WebAssembly概览
  • 2.4 你好,WebAssembly
  • 2.5 WebAssembly调试及代码编辑环境
  • 第3章 JavaScript中的WebAssembly对象
  • 3.1 WebAssembly对象简介
  • 3.2 全局方法
  • 3.3  WebAssembly.Module 对象
  • 3.4  WebAssembly.Instance 对象
  • 3.5  WebAssembly.Memory 对象
  • 3.6  WebAssembly.Table 对象
  • 3.7 小结及错误类型
  • 第4章 WebAssembly汇编语言
  • 4.1 S-表达式
  • 4.2 数据类型
  • 4.3 函数定义
  • 4.4 变量
  • 4.5 栈式虚拟机
  • 4.6 函数调用
  • 4.7 内存读写
  • 4.8 控制流
  • 4.9 导入和导出
  • 4.10  start() 函数及指令折叠
  • 第5章 WebAssembly二进制格式
  • 5.1 LEB128编码
  • 5.2 头部和段数据
  • 5.3 内存段和数据段
  • 5.4 表格段和元素段
  • 5.5 开始段和函数索引
  • 5.6 全局段
  • 5.7 函数段、代码段和类型段
  • 5.8 导入段和导出段
  • 5.9 自定义段
  • 5.10 补充说明
  • 第6章 Emscripten和WebAssembly
  • 6.1 安装环境
  • 6.2 你好,Emscripten!
  • 6.3 C/C++内联JavaScript代码
  • 6.4 C/C++调用JavaScript函数
  • 6.5 JavaScript调用C导出函数
  • 6.6 运行时和消息循环
  • 6.7 补充说明
  • 第7章 Go语言和WebAssembly
  • 7.1 你好,Go语言
  • 7.2 浏览器中的Go语言
  • 7.3 使用JavaScript函数
  • 7.4 回调Go函数
  • 7.5  syscall/js 包
  • 7.6 WebAssembly模块的导入函数
  • 7.7 WebAssembly虚拟机
  • 7.8 补充说明
  • 附录 指令参考
  • 数据类型
  • 常数指令
  • 算术运算指令
  • 位运算指令
  • 变量访问指令
  • 内存访问指令
  • 比较指令
  • 类型转换指令
  • 控制流指令
  • 其他指令
展开全部