日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

智能合约WASM语言 (1)概述

發(fā)布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 智能合约WASM语言 (1)概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 . 定義

WASM(WebAssembly)是一種運行在 Web 平臺上的 匯編代碼Assembly。一種小體積,高加載速度的基于堆棧的虛擬機(jī)的二進(jìn)制指令格式。

Web 平臺好比虛擬機(jī)環(huán)境, WebAssembly 可以看做是 Web 平臺的 x86 硬件通用指令集,作為一層中間語言,上層對接 Java、Python、Rust、Cpp,讓這些語言都能編譯成統(tǒng)一的格式,用于 Web 平臺運行。

為諸如C、C++等低級源語言提供一個高效的編譯目標(biāo),使得以各種語言編寫的代碼都可以以接近原生的速度在web中運行。(所有由傳統(tǒng)語言編寫的客戶端app都可以在web上高效運行)

  • Wasm 被設(shè)計為編程語言的可移植編譯目標(biāo),從而可以在 Web 上為客戶端和服務(wù)器應(yīng)用程序進(jìn)行部署。
  • 四大瀏覽器廠商(Chrome, Firefox, Edge, Safari)全部默認(rèn)支持WebAssembly 。

1.1 Assembly匯編代碼

虛擬機(jī)層會同時加載和運行兩種類型的代碼——JavaScript和WebAssembly。一個典型的編譯執(zhí)行鏈路是 C++、Rust 等編譯型語言編譯成匯編指令,再轉(zhuǎn)換成二進(jìn)制機(jī)器碼由 CPU 讀取。其他例如 Java、Python 等語言是使用運行在 x86 一類的通用硬件指令集的虛擬機(jī),再執(zhí)行自己的“匯編語言”(例如 Java Bytecode)

eg. 中間的十六進(jìn)制的Binary Code就是WebAssembly

1.2 與JavaScript

  • WebAssembly模塊將能夠調(diào)用和退出JavaScript上下文,并通過可從JavaScript訪問的相同Web API來訪問瀏覽器功能。WebAssembly還支持非Web嵌入。

  • 和JavaScript互補(bǔ)協(xié)同工作,作為一個“高性能的JS函數(shù)”,提供js api實現(xiàn)互相調(diào)用。

  • 可以取代部分 JavaScript 代碼執(zhí)行更高效的 CPU 計算程序。

2. WebAssembly優(yōu)勢

  • 開放且可調(diào)試
    WebAssembly設(shè)計為以文本格式精美打印,用于手工調(diào)試,測試,實驗,優(yōu)化,學(xué)習(xí),教學(xué)和編寫程序。每一條指令有對應(yīng)的二進(jìn)制值。在Web上查看Wasm模塊的來源時,將使用文本格式。

  • 高效,跨平臺
    Wasm stack machine 設(shè)計為以節(jié)省大小和加載時間的二進(jìn)制格式進(jìn)行編碼,可以直接在WebAssembly虛擬機(jī)上運行。

  • 安全的沙箱化執(zhí)行環(huán)境
    WebAssembly被限制運行在一個虛擬的的沙箱執(zhí)行環(huán)境中,運行時產(chǎn)生的變化可以隨后刪除,不會對系統(tǒng)產(chǎn)生永久性影響。該環(huán)境甚至可以在現(xiàn)有JavaScript虛擬機(jī)內(nèi)部實現(xiàn),可以嚴(yán)格遵循瀏覽器的同源策略和授權(quán)策略。

  • 無版本,標(biāo)準(zhǔn)化
    無版本,向后兼容。

總結(jié)

以上是生活随笔為你收集整理的智能合约WASM语言 (1)概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。