webassembly学习——二进制格式

一、二进制格式

WASM有两种格式,一个是文本格式(以.wat后缀结尾),供人看的;一种是供机器看的,就是今天说的二进制格式(以.wasm后缀结尾)。这里不具体谈每个部分的格式,这个在官网上有详细的说明。只是从整体的角度分析说明一下。WASM作为一种可移植的目标对象,使用二进制表示,可以用更少的空间实现快速的编解码。从而降低内存的占用,这对于Web应用是至关重要的一环。二进制的表现形式能够更加紧凑的实现相关的内容。

二、wasm的分层

WASM的二进制格式基本上分为三层:
1、第0层,基本的字节码及数据结构的二进制指令。
2、第1层,根据语法树及相关特点在第0层基础上实现的编码压缩,同时对相关数据进行整理和裁剪。
3、第2层,使用通用的压缩算法如gzip等,进行整体的数据压缩。

三、wasm的具体分析

二进制的格式比较难看,虽然较之二进制的机器码要好读一些,但仍然对大多数人都是比较难理解的。也就是说,读不读懂二进制的WebAssembly的格式,其实对大多数人来说,意义并不大。或者说不用去读懂,甚至不用去读。但所有的问题有的时候儿往往聚集到一个焦点,那就是越是不需要,往往越是遇到这方面的问题。所以,有时候儿学学一些知识,会有一点玄学上的优势。
wasm的二进制格式主要有三大块:
1、模块
其实不同语言间为这个的定义是各有特色,反正学得多了,看得多了就会发现,就是那么几下子。一般来说,到模块这个层次,应该是控制的比较高的层次了。模块其实更倾向于功能相关性,也就是说,一般一个模块的,都是相关功能的。如果一个模块内功能各有千秋,到不搭界,好吧。这也算是个设计人才。
模块内的分工就比较明显了,一般为会有头标记诸如魔数之类的,然后是各种的导入、导出、函数、代码等等段落或者说节。通常,每个段落会有ID标记(一个字节),段落长度和有效载荷。说段落是为了让初学者更容易接受,其实叫节更高大上和学术一些。
2、函数
函数其实就是指令字节码+操作码+数据。每个函数必须以操作码end结尾。其实在函数中,最主要的就是上面的三点,不过,数据又可以划分成常量、变量、参数、立即数和内存值等等。操作符又有数字、内存操作和转换等操作。你把整体把握住细节再去划分,这些东西就会分门别类不会出现什么大的问题。

3、基本类型
基本类型是所有语言或者说相关类型的标准都需要的,就如盖房子的基础,砖、瓦等等。比如常见的数字类型、指令操作码和语言类型,不是这些的可以划成其它类型等等。有了这些基础的类型,就可以通过函数来实现功能,而通过功能的划分实现模块,进而组成一个标准体系。

要想更好的了解相关的细节,比如类型种类的内容,函数的功能实现等等,可以去官方的网站去看,写得非常详尽,这里不再做抄书虫。

四、总结

二进制格式其实就是WASM的底层格式标准了,有了这个标准,只要其它所有的上层语言能搞定到这一层,那么,相对来说,就可以方便的实现向具体的机器码的转化了。这也是WASM的野望吧。懂得底层的一些知识,对学习上层应用,其实是大有裨益的,不过可惜的是,学习曲线的陡峭,让很多人望而却步。
总体上来说,因人而异吧,自己的学习之路,自己搞定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值