91在线一级黄片|91视频在线观看18|成人夜间呦呦网站|91资源欧美日韩超碰|久久最新免费精品视频一区二区三区|国产探花视频在线观看|黄片真人免费三级片毛片|国产人无码视频在线|精品成人影视无码三区|久久视频爱久久免费精品

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
基于WebAssembly的熱門語言項(xiàng)目

從瞬時(shí)運(yùn)行的Web應(yīng)用程序到瀏覽器中的Python語言,一些熱門的編程語言和編譯器項(xiàng)目為WebAssembly的承諾提供多種選擇。

如今的Web應(yīng)用程序的運(yùn)行速度和響應(yīng)速度遠(yuǎn)不及桌面應(yīng)用程序,但如果能做到呢?這就是WebAssembly做出的承諾。

WebAssembly是一種低級(jí)的類匯編(assembly-like)語言,具有緊湊的二進(jìn)制格式,可以在Web瀏覽器中以接近桌面設(shè)備的性能運(yùn)行。與此同時(shí),WebBaseMulk為C/C++、C、RISE、GO、Kotlin、SWIFT等編程語言提供了一個(gè)可移植的編譯目標(biāo)。

WebAssembly被譽(yù)為一種既可以提高Web應(yīng)用程序性能,又允許在瀏覽器應(yīng)用程序開發(fā)中使用JavaScript以外的語言的方式,它得到Google、Mozilla、Apple和Microsoft瀏覽器的支持,所有這些瀏覽器都在其引擎中支持該技術(shù)。

WebAssembly促進(jìn)了一系列新技術(shù)的開發(fā),其中包括利用其強(qiáng)大功能的全新編程語言。以下是致力為WebAssembly支持的10個(gè)語言項(xiàng)目。

1.Binaryen

Binaryen是一個(gè)用于WebAssembly的編譯器工具鏈基礎(chǔ)設(shè)施庫。Binaryen采用C++編寫,旨在使編譯到WebAssembly變得更加容易、高效和快速。它在單個(gè)標(biāo)頭中有一個(gè)C API,并且可以從JavaScript中使用。輸入以類似 WebAssembly的形式被接受,但一般控制圖也被一些編譯器接受。

Binaryen的內(nèi)部IR使用緊湊的數(shù)據(jù)結(jié)構(gòu),并利用所有 CPU 內(nèi)核進(jìn)行并行代碼生成和優(yōu)化。IR也很容易編譯到WebAssembly,因?yàn)樗举|(zhì)上是WebAssembly的一個(gè)子集。特定于 WebAssembly的優(yōu)化提高了代碼大小和速度,使Binaryen可以單獨(dú)用作編譯器后端。

2.Blazor WebAssembly

Blazor WebAssembly是一個(gè)框架,用于使用.NET構(gòu)建交互式、客戶端的單頁Web應(yīng)用程序,并將這些應(yīng)用程序托管在基于WebAssembly的.NET 運(yùn)行時(shí)的瀏覽器中(包括移動(dòng)設(shè)備瀏覽器)。不需要插件或?qū)⒋a重新編譯成其他語言。在運(yùn)行時(shí)使.NET代碼能夠通過 WebAssembly的JavaScript API訪問瀏覽器功能。

當(dāng)Blazor WebAssembly應(yīng)用程序在瀏覽器中運(yùn)行時(shí),C#代碼文件和Razor文件將編譯為.NET程序集,這些程序集將隨著.NET運(yùn)行時(shí)一起下載到瀏覽器。而且,由于.NET代碼是在瀏覽器的JavaScript沙盒中的WebAssembly上執(zhí)行的,所以它會(huì)受到保護(hù),因此可以防止客戶端計(jì)算機(jī)上的惡意操作。Blazor WebAssembly應(yīng)用程序可以獨(dú)立部署,也可以在服務(wù)器端支持下部署。

3.Cheerp

Leaning科技公司開發(fā)的Cheerp被定位為用于Web的企業(yè)級(jí)C/C++ 編譯器,將C、C++、甚至C++ 17編譯成 WebAssembly、JavaScript 或兩者的組合。Cheerp可以集成到 LLVM/Clang基礎(chǔ)設(shè)施中,通過自定義優(yōu)化來提高性能并最小化編譯輸出的大小。Cheerp主要用于將現(xiàn)有的C/C++庫和應(yīng)用程序移植到HTML5,也可用于編寫Web應(yīng)用程序和WebAssembly組件。Cheerp是在開源和商業(yè)許可下提供的。

4.CheerpJ

這款基于LLVM的編譯器被譽(yù)為“Web的Java編譯器”,可將任何Java客戶端應(yīng)用程序轉(zhuǎn)換為WebAssembly、JavaScript和HTML,從而使Java客戶端應(yīng)用程序能夠在各個(gè)瀏覽器中運(yùn)行。CheerpJ利用三個(gè)組件:AOT(提前)編譯器、WebAssembly和JavaScript DOM互操作性API,以從Java訪問DOM。使用CheerpJ,可以使用AOT 編譯器編譯JAR檔案。CheerpJ 不需要任何服務(wù)器端支持。

和Cheerp一樣,CheerpJ也是Leaning科技公司開發(fā)的。

5.Emscripten

Emscripten這個(gè)開源編譯器工具鏈將C和C++或任何其他使用LLVM編譯器技術(shù)的語言編譯成WebAssembly,以便部署在Web、Node.js或Wasm上。Emscripten 編譯器emcc也通過JavaScript為編譯后的代碼提供API支持。Emscripten已被用于將現(xiàn)實(shí)世界的代碼庫列表轉(zhuǎn)換為WebAssembly,其中包括商業(yè)代碼庫,例如Unreal Engine 4游戲引擎和Unity 3D 平臺(tái)。Emscripten支持C和C++標(biāo)準(zhǔn)庫、C++和OpenGL/WebGL圖形命令,用于安裝Emscripten 工具鏈(emcc、LLVM 等)的Emscripten SDK可以在Linux、MacOS和Windows等操作系統(tǒng)上使用。

6.Forest

Forest 是一種可編譯為 WebAssembly的函數(shù)式編程語言。開發(fā)人員Nick Johnstone表示,F(xiàn)orest背后的目標(biāo)是提供一種語言,使創(chuàng)建復(fù)雜、交互式和功能性的Web應(yīng)用程序變得更容易,并且沒有這種方法的傳統(tǒng)開銷。

目前被描述為“pre-alpha、實(shí)驗(yàn)性、概念研究軟件”,F(xiàn)orest具有靜態(tài)類型、模式匹配、不可變數(shù)據(jù)結(jié)構(gòu)、多種語法和自動(dòng)代碼格式。開發(fā)中的第一個(gè)語法受到Elm和Haskell的啟發(fā)。

Forest語言的設(shè)計(jì)原則包括易于協(xié)作、盡可能無痛的測(cè)試以及在結(jié)構(gòu)和語義上達(dá)成一致,同時(shí)在語法上達(dá)成一致。Johnstone 努力讓Forest足夠快來構(gòu)建復(fù)雜的游戲,這樣使用網(wǎng)絡(luò)應(yīng)用程序運(yùn)行得非???。

7.Grain

開發(fā)該項(xiàng)目的網(wǎng)站聲稱,Grain語言具有學(xué)術(shù)語言和功能語言的特性。通過Binaryen工具鏈和編譯器基礎(chǔ)設(shè)施編譯為WebAssembly,Grain可以在瀏覽器、服務(wù)器和任何地方運(yùn)行。沒有運(yùn)行時(shí)類型錯(cuò)誤,也不需要類型注釋。Grain工具鏈具有CLI、編譯器、標(biāo)準(zhǔn)庫,并作為單個(gè)二進(jìn)制文件提供。開發(fā)人員將需要Node.js和Yarn從源代碼構(gòu)建Grain,并且二進(jìn)制文件可用于Linux、MacOS和Windows。

8.JWebAssembly

JWebAssembly由I-Net Software公司開發(fā),是一個(gè) Java字節(jié)碼到WebAssembly編譯器,它以Java類文件為輸入,生成WebAssembly二進(jìn)制格式(.wasm文件)或文本格式(.wat文件)作為輸出。目標(biāo)是使用WebAssembly在瀏覽器中本地運(yùn)行。在理論上,JWebAssembly可以編譯那些能夠編譯Java ava字節(jié)碼的語言,例如Clojure、Groovy、JRuby、Kotlin和Scala,這些語言都有待測(cè)試。

JWebAssembly尚未準(zhǔn)備好生產(chǎn)。盡管JWebAssembly 1.0版本所需的一切都已實(shí)現(xiàn),但測(cè)試仍有待完成。1.0版路線圖需要Java字節(jié)碼解析器、測(cè)試框架和Gradle插件等功能。 I-Net Software公司預(yù)計(jì)今年將發(fā)布JWebAssembly 1.0。

9.Pyodide

Pyodide項(xiàng)目最近從Mozilla遷移出來之后成為一個(gè)獨(dú)立項(xiàng)目,將Python和Python科學(xué)堆棧編譯到WebAssembly,將Python 3.8、NumPy、SciPy、Matplotlib、Scikit-learn 和其他數(shù)十個(gè)包引入瀏覽器。Pyodide提供JavaScript和Python之間對(duì)象的透明轉(zhuǎn)換,并允許Python 訪問Web API。Pyodide始于2018年,是Iodide項(xiàng)目的一部分,用于在瀏覽器中進(jìn)行數(shù)據(jù)科學(xué)。用戶可以從瀏覽器中的REPL嘗試采用Pyodide。

10.TeaVM

作為Java字節(jié)碼的提前編譯器,TeaVM通過WebAssembly和JavaScript在瀏覽器中運(yùn)行。但是,需要注意 WebAssembly 支持目前處于試驗(yàn)階段。與其近親GWT(Google Web Toolkit)一樣,TeaVM允許開發(fā)人員采用Java編寫應(yīng)用程序,并將它們部署為JavaScript。與GWT不同,TeaVM使用編譯后的類文件,而不是源代碼。此外,TeaVM依賴于現(xiàn)有的編譯器,例如javac、kotlinc和scalac,因此可以編譯Kotlin和Scala代碼以及Java。TeaVM主要是一個(gè)Web開發(fā)工具,但它不是為在Java或Kotlin中使用大型代碼庫并生成JavaScript而設(shè)計(jì)的。TeaVM子項(xiàng)目Flavour可以作為編寫單頁Web應(yīng)用程序的框架。


新聞標(biāo)題:基于WebAssembly的熱門語言項(xiàng)目
網(wǎng)頁路徑:http://m.jiaoqi3.com/article/dppsoho.html