成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于WebAssembly的10個熱門語言項目

譯文
開發
從反應快的 Web 應用程序到Python 數據科學,這些編程語言和編譯器項目為 WebAssembly 的前景提供了 10 個不同的方向。

 [[404713]]

【51CTO.com快譯】今天的 Web 應用程序遠沒有原生桌面應用程序響應快,但就是WebAssembly的承諾可以做到。 

WebAssembly 是一種低級、類匯于匯編語言,具有緊湊的二進制格式,在 Web 瀏覽器中以接近本機的性能運行。與此同時,WebAssembly 為 C/C++、C#、Rust、Go、Kotlin、Swift 等編程語言提供了一個可移植的編譯目標。

WebAssembly 被譽為提高 Web 應用程序性能并允許在瀏覽器應用程序開發中使用 JavaScript 以外的語言的一種方式,它到了 Google、Mozilla、蘋果和微軟
的支持,這些公司都在瀏覽器引擎中使用這項技術。

WebAssembly 開發了一系列新技術,包括利用其強大功能的全新編程語言。以下是在 WebAssembly 基礎上開發的 10 個語言項目。

Binaryen 

Binaryen是用于WebAssembly的編譯器工具鏈基礎結構庫。Binaryen 用 C++ 編寫,旨在使匯編語言易于編寫、高效、快速。它在頭文件中有一個 C API,并且可以從 JavaScript 中使用。輸入可以采用類似 WebAssembly 的形式,但是對于喜歡它的編譯器的開發者來說,通用控制圖也是可以接受的。

Binaryen 的內部 IR(中間表示)使用緊湊的數據結構,并利用所有 CPU 內核進行并行編碼和優化。IR 也可以很容易地編譯成 WebAssembly,因為它本質上是 WebAssembly 的一個子集。特定于 WebAssembly 的優化是,提高了代碼數量和效率,使得 Binaryen 本身可以作為編譯器后端使用。

Blazor WebAssembly

Blazor WebAssembly 是一個框架,用于使用.NET構建交互式、客戶端、單頁web應用程序,并將這些應用程序托管在基于 WebAssembly 的 .NET 運行時上的瀏覽器(包括移動瀏覽器)中。不需要插件或將代碼重新編譯成其他語言。運行時允許 .NET 代碼通過 WebAssembly 的 JavaScript API 訪問瀏覽器功能。

當 Blazor WebAssembly 應用程序在瀏覽器中運行時,C# 代碼文件和 Razor 文件將被編譯成 .NET 程序集,這些程序集與 .NET 運行時一起下載到瀏覽器。由于 .NET 代碼是在瀏覽器的 JavaScript 沙盒中的 WebAssembly 上執行的,所以它會受到保護,以防客戶端計算機上的惡意操作。Blazor WebAssembly 應用程序可以獨立部署,也可以在服務器端支持下進行部署。

Cheep

Leaning Technologies 的Cheerp被定位為用于 Web 的企業級 C/C++ 編譯器,將 C 和 C++ 編譯為 C++ 17,并將其集成到 WebAssembly、JavaScript 或兩者的組合中。Cheerp 集成到LLVM/Clang 基礎結構中,通過定制優化來提高性能并最小化編譯輸出的大小。Cheerp 主要用于將現有的 C/C++ 庫和應用程序移植到 HTML5,Cheerp也可以用來編寫 Web 應用程序和 WebSasMeLabess組件。Cheerp 是在開源和商業許可下提供的。

CheerpJ

CheerpJ是基于被譽為“Web 的 Java 編譯器”的 LLVM 編譯器上運行的,它可將任何 Java 客戶端應用程序轉換為 WebAssembly、JavaScript 和 HTML,從而使 Java 客戶端應用程序能夠在瀏覽器中運行。CheerpJ 使用三個組件:AOT編譯器、WebAssembly 和 JavaScript 中的運行時以及 JavaScript DOM 互操作性 API,從 Java 訪問 DOM。使用 CheerpJ,可以使用 AOT 編譯器編譯 JAR 檔案文件。CheerpJ 不需要任何服務器端支持。

Emscripten

這個開源編譯器工具鏈將 C 和 C++ 或任何其他語言使用 LLVM 編譯器技術編入WebBaseMalk中,用于部署在Web、NoDE.JS或WASM運行中。Emscripten 編譯器 emcc 還可以具有JavaScript的功能,為編譯后的代碼提供 API 支持。Emscripten 已經被用來將代碼庫列表轉換為 WebAssembly,包括商業代碼庫,如 Unreal Engine 4 游戲引擎和 Unity 3D 平臺。Emscripten 支持C 和C++ 標準庫、C++ 異常和OpenGL/WebGL 圖形命令。用于安裝Emscripten 工具鏈(emcc、LLVM 等)的Emscripten SDK可以在Linux、MacOS 和Windows 上使用。

Forest 

Forest 是一種可編譯為 WebAssembly 的函數式編程語言。開發人員Nick Johnstone說,Forest 背后的目標是提供一種語言,使創建復雜、交互式和功能性的web應用程序變得更加容易。

目前,Forest被描述為“pre-alpha、實驗性、概念研究軟件”,Forest 具有靜態類型、模式匹配、不可變的數據結構、多種語法和自動代碼格式。開發中的第一個語法受到 Elm 和 Haskell 的啟發。

Forest 語言的設計原則包括易于協作、盡可能簡單的測試以及在結構和語義上達成一致,同時在語法上達成一致。Johnstone 努力使 Forest 反應足夠快,以構建復雜的游戲,使普通的web應用程序變得“非常快”。

Binaryen

該項目網站稱,Grain語言為21世紀帶來了學術語言和功能語言的特點。通過Binaryen工具鏈和編譯器基礎設施編譯到 WebAssembly上 ,Grain 可以在瀏覽器、服務器甚至任何地方運行。沒有運行時類型錯誤,也不需要類型注釋。Grain 工具鏈具有 CLI、編譯器、運行時間和標準庫,作為單個二進制文件提供。開發人員只需要從Node.js 和 Yarn的源代碼上構建 Grain,Linux、MacOS和Windows都可以使用二進制文件。

JWebAssembly

JWebAssembly 是一種Java字節碼到WebAssembly編譯器,它以 Java 類文件為輸入,并生成 WebAssembly 二進制格式(.wasm 文件)或文本格式(.wat 文件)作為輸出。目標是使用 WebAssembly 在瀏覽器中本地運行。理論上,JWebAssembly 可以編譯任何可以編譯為 Java 字節碼的語言,例如 Clojure、Groovy、JRuby、Kotlin 和 Scala,有待測試。

JWebAssembly 尚未準備好生產。盡管 JWebAssembly 1.0 版本所需的所有內容都已實現,但測試仍有待完成。版本1.0 路線圖要求提供諸如 Java 字節碼解析器、測試框架和 Gradle 插件等功能。I-Net Software 預計今年將發布 JWebAssembly 1.0。

Pyodide

Pyodide 項目最近從Mozilla 變成了到一個獨立項目,它將 Python 和 Python Scientific堆棧編譯到 WebAssembly,將 Python 3.8 運行時間、NumPy、SciPy、Matplotlib、Scikit-learn 以及其他幾十個包架構到瀏覽器中。Pyodide 提供了JavaScript 和 Python 之間對象的透明轉換,并允許 Python 訪問 Web API。Pyodide 始于 2018 年,是 Iodide 項目的一部分,用于在瀏覽器中進行數據科學研究。Pyodide可以從瀏覽器中的REPL試用。

虛擬機(TeaVM) 

TeaVM是Java字節碼的一個提前編譯器,它可以使出WebAssembly和JavaScript在瀏覽器中運行。但是,請注意 ,WebAssembly 支持目前還處于試驗階段。與GWT(Google Web Toolkit)一樣,TeaVM 允許開發人員用 Java 編寫應用程序并將它們部署為 JavaScript。與 GWT 不同,TeaVM 使用編譯后的類文件,而不是源代碼。此外,TeaVM依賴于javac、kotlinc和scalac等現有的編譯器,因此可以像編譯 Java一樣編譯Kotlin和Scala代碼。TeaVM 主要是一個 Web 開發工具;它不是為了在 Java 或 Kotlin 中獲取大型代碼基并生成JavaScript而設計的。TeaVM 子項目 Flavour可以作為編寫單頁web應用程序的框架。

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:梁菲 來源: InfoWorld
相關推薦

2021-06-11 09:00:00

語言WebWebAssembly

2020-11-04 10:35:05

Github開源項目編程

2019-11-11 08:26:13

PythonGithub開源項目

2019-11-05 09:54:50

Github開源項目編程

2022-06-22 10:04:29

JavaScriptRust語言

2015-08-21 10:18:17

熱門編程語言Java

2020-11-02 11:28:09

開源項目GitHubPython

2020-11-05 13:58:31

JavaScript開源項目Github

2015-09-10 10:59:34

大數據趨勢

2019-11-17 23:12:01

JavaScript開源項目Github

2021-04-19 10:00:04

Web開發項目

2020-11-09 10:15:57

Python開源項目GitHub

2019-11-07 22:59:10

Java開源項目Github

2021-08-30 08:00:00

編程語言WebAssembly安全

2021-01-12 11:11:16

IT技術IT技術職位技能

2020-03-17 08:50:41

Java 開發者工具

2024-02-19 00:00:00

前端開源項目

2018-11-21 14:30:52

GitHubJavaScript開源項目

2019-11-12 16:44:50

Go語言泛函編程設計

2022-11-27 21:54:34

TypeScrip開發Github
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人国内精品久久久久一区 | 少妇av片 | 婷婷色国产偷v国产偷v小说 | 中文字幕视频在线观看 | 91精品国产高清一区二区三区 | 久久狠狠 | 国产成人jvid在线播放 | a免费在线| 超碰在线亚洲 | av免费观看在线 | 亚洲精品一区二区 | 欧美日韩国产不卡 | 国产乱精品一区二区三区 | 久久国产精品亚洲 | av电影一区 | 亚洲精品在线视频 | 九色网址 | 欧美日韩亚洲系列 | 日韩欧美在线免费观看 | 亚洲精品电影网在线观看 | 少妇精品亚洲一区二区成人 | 国产免费一区二区三区 | 欧美精品一二三 | 日本三级做a全过程在线观看 | 久久精品久久久久久 | 日本男人天堂 | 亚洲精品视频网站在线观看 | 午夜a级理论片915影院 | 国产一区二 | 欧美理伦片在线播放 | 国产视频二区 | 国产欧美一区二区久久性色99 | 精品无码久久久久久国产 | 另类视频在线 | 精品一区二区久久久久久久网站 | 成人免费淫片aa视频免费 | 夜夜骑首页 | 国产精品视频播放 | 日韩精品一区二区三区免费视频 | 日韩精品一区二区三区中文在线 | 国产精品国产三级国产aⅴ中文 |