我是靠谱客的博主 调皮海燕,最近开发中收集的这篇文章主要介绍智能合约WASM语言 (1)概述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 . 定义

WASM(WebAssembly)是一种运行在 Web 平台上的 汇编代码Assembly。一种小体积,高加载速度的基于堆栈的虚拟机的二进制指令格式。

Web 平台好比虚拟机环境, WebAssembly 可以看做是 Web 平台的 x86 硬件通用指令集,作为一层中间语言,上层对接 Java、Python、Rust、Cpp,让这些语言都能编译成统一的格式,用于 Web 平台运行。

为诸如C、C++等低级源语言提供一个高效的编译目标,使得以各种语言编写的代码都可以以接近原生的速度在web中运行。(所有由传统语言编写的客户端app都可以在web上高效运行)

  • Wasm 被设计为编程语言的可移植编译目标,从而可以在 Web 上为客户端和服务器应用程序进行部署。
  • 四大浏览器厂商(Chrome, Firefox, Edge, Safari)全部默认支持WebAssembly 。
    在这里插入图片描述

1.1 Assembly汇编代码

虚拟机层会同时加载和运行两种类型的代码——JavaScript和WebAssembly。一个典型的编译执行链路是 C++、Rust 等编译型语言编译成汇编指令,再转换成二进制机器码由 CPU 读取。其他例如 Java、Python 等语言是使用运行在 x86 一类的通用硬件指令集的虚拟机,再执行自己的“汇编语言”(例如 Java Bytecode)

eg. 中间的十六进制的Binary Code就是WebAssembly

在这里插入图片描述

1.2 与JavaScript

  • WebAssembly模块将能够调用和退出JavaScript上下文,并通过可从JavaScript访问的相同Web API来访问浏览器功能。WebAssembly还支持非Web嵌入。

  • 和JavaScript互补协同工作,作为一个“高性能的JS函数”,提供js api实现互相调用。

  • 可以取代部分 JavaScript 代码执行更高效的 CPU 计算程序。

2. WebAssembly优势

  • 开放且可调试
    WebAssembly设计为以文本格式精美打印,用于手工调试,测试,实验,优化,学习,教学和编写程序。每一条指令有对应的二进制值。在Web上查看Wasm模块的来源时,将使用文本格式。

  • 高效,跨平台
    Wasm stack machine 设计为以节省大小和加载时间的二进制格式进行编码,可以直接在WebAssembly虚拟机上运行。

  • 安全的沙箱化执行环境
    WebAssembly被限制运行在一个虚拟的的沙箱执行环境中,运行时产生的变化可以随后删除,不会对系统产生永久性影响。该环境甚至可以在现有JavaScript虚拟机内部实现,可以严格遵循浏览器的同源策略和授权策略。

  • 无版本,标准化
    无版本,向后兼容。

最后

以上就是调皮海燕为你收集整理的智能合约WASM语言 (1)概述的全部内容,希望文章能够帮你解决智能合约WASM语言 (1)概述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部