WebAssembly 入门课
从 0 到 1 实现一个 WebAssembly 多媒体应用
于航  PayPal 高级软件工程师
专栏
已完结·共 23 讲
|
1.1w 人已学
|
收藏
Geek_b232f0
终于有相关教程了,开心! 好好学习,加油
2020-10-15
weineel
感觉 Flat-WAT,比 WAT 看着好懂,为啥不直接只用 Flat-WAT?
作者回复:这个主要是由于对“S-表达式”这种代码表达方式的选择。而为什么选择“S-表达式”则是由于几个因素的考虑:1、尽量不自行创建新的格式,而是直接利用已有的成熟的格式;2、这种格式可以“转换”为方便人们阅读的形式;3、这种格式可以表达 Wasm 模块的内部结构,与字节码一一对应。综上,核心团队选择了“S-表达式”。而对于编译器和工具来说,这种“S-表达式”可以被现有的很对代码实现直接解析和使用,不用重新造轮子,减轻了 Wasm 早期发展时的难度和负担。而同时“S-表达式”也可以被转换为对应的“Linear Representation”的形式,也就是“Flat-WAT”的格式。所以因果关系是先有的“S-表达式”形式的 WAT,才有的对应的 Flat-WAT。
2020-10-02
Geek_58a18e
大学没学懂的知识 工作好几年后配上老师的教程 醍醐灌顶 感谢
作者回复:很高兴能够帮到你 :)
2020-09-27
Jason
老师的原理讲解很细致,受益匪浅,以前自认为自己了解了 wasm,课程看到此意识到自己所知甚少。谢谢于老师的讲解,期待于航老师的实战讲解!
作者回复:很高兴能够对你有帮助!
2020-09-17
David
清晰的课程总览,赞! 期望讲C/C++ 的优秀的代码库,同时期待多介绍些Rust与Wasm之间的协同与业界最佳实践。 一起成长������
2020-09-17
替换出 UTF-8 编码对应的三个字节。在替换时,你需要将从上一步获得的二进制序列中的各个二进制位,按照从左到右的顺序依次替换掉 UTF-8 编码中用于占位的 “x” ======================= 这一步是怎么替换的? 没有看明白的 01100111 10000001 ---> 11100110 10011110 10000001
作者回复:首先,我们根据码位值找到表中的一个范围 [U+0800, U+FFFF]。然后这个范围对应着一个模板 “1110xxxx 10xxxxxx 10xxxxxx”,其中就有占位的 “x”。然后你再把上面的 “01100111 10000001” 从左到右按位依次替换到模板中的 “x”,就可以得到结果了。
2020-09-16
IV0id
我觉得应该是20啊,命令执行每一行命令之后stack状态如图 i32.const 1 | 1 i32.const 1 | 1,1 i32.eq | 1 i32.const 10 | 1,10 i32.const 10 | 1,10,10 i32.add | 1,20 i32.mul | 20
作者回复:很棒!
2020-09-09
qinsi
目前看到的浏览器外的客户端应用似乎大多还只是把wasm当成一种“更好的Lua“来用,因为都是可以在一个内嵌的虚拟机中运行可更新的代码,所以常被用来实现代码逻辑的热更新。但要在封闭的花园中使用本身就有阻力(比如iOS版的微信小程序,如果允许热更新,应用审核就形同虚设)。 服务端方面,传统的组件大都提供了脚本扩展的功能(比如Nginx官方支持JavaScript,OpenResty和Redis等支持lua),同时也都可以编写原生组件来扩展功能(如Node.js的N-API)。wasm相比原生代码在可移植性上更好,同时性能上优于脚本,应该可以在一些新的场景中找到自己的位置。但从标准化的系统接口这个角度来说,这是以JVM为代表的一众生态一直在解决的问题,所以wasi更像是在另一个生态中重新发明一遍轮子。 当前有很多语言都号称支持wasm,但实现方式各不相同,性能也不一样。需要手工内存管理的语言通常都支持直接编译为wasm;带gc的语言可能就需要额外输出一个wasm实现的gc;脚本语言最省事,用wasm实现一个解释脚本的虚拟机就可以跑起来了。 对于web前端开发人员来讲,为了极致的运行性能而去重新学习和使用一门支持wasm的系统级编程语言,开发效率不升反降。所以wasm可能并不会为前端开发带来多少新的机会,相反应该是为系统级开发人员提供了一个进入前端的窗口。 以上是我当前的看法,希望学完之后能有新的认识。
2020-09-08
连瑞龙
作为一名嵌入式浏览器开发者,Wasm似乎是一个不错的进阶方向。
2020-09-08
前方的灯有点弱
这个技术足以改变世界+++
2020-09-08
讲师

于航

PayPal 高级软件工程师

于航,PayPal 高级软件工程师,WebAssembly 技术布道者,FCC (FreeCodeCamp China)上海技术社区负责人,QCon 和 GMTC 大会讲师、出品人。 研究方向主要为 Web 前端基础技术架构、WebAssembly、LLVM 及虚拟机...查看更多
编辑推荐
讲师的其他课程
深入 C 语言和程序运行原理
于航
PayPal 技术专家

49讲 | 21126 人已学习

¥59¥129
包含这门课的学习路径

前端工程师

24门课程 109.3w人学习
看过的人还看了
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283805 人已学习

¥68¥199
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 181001 人已学习

¥98¥399
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123470 人已学习

¥98¥299
重学前端
程劭非(winter)
前手机淘宝前端负责人

57讲 | 105377 人已学习

¥59¥129
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224937 人已学习

¥68¥199
浏览器工作原理与实践
李兵
前盛大创新院高级研究员

46讲 | 56422 人已学习

¥59¥129