Webassembly là gì

  -  

Vậy WebAssembly là gì mà có thể trở thành một trong các “tứ trụ” của technology web? Liệu nó có tương quan gì đến ngữ điệu lập trình Assembly?

WebAssembly

WebAssembly không hẳn là ngôn ngữ lập trình như JavaScript mà là một trong những định dạng nhị phân nút thấp đến web. Nút thấp tức là gần với ngôn ngữ máy và chính vì điều này nhưng mà nó được coi là ngôn ngữ Assembly cho trái đất Web và cái brand name WebAssembly ra đời.

Bạn đang xem: Webassembly là gì

Nhưng WebAssembly vày đâu nhưng mà có? chúng ta biết rằng, trước khi xuất hiện thêm WebAssembly, những trình để mắt tới chỉ có thể thực thi HTML, CSS cùng JavaScript. Các đoạn mã bằng các ngôn ngữ khác như C, C++,…muốn thực hiện trên trình trông nom phải trải qua nhiều tiến độ trung gian. Khi WebAssembly xuất hiện, các đoạn mã viết bằng các ngôn ngữ C, C++ cùng Rust hoàn toàn có thể được biên dịch thành WebAssembly – dễ dàng và đơn giản đó chỉ là 1 trong những tập tin nhị phân bao gồm phần không ngừng mở rộng là WASM cùng dưới hình hài mới này chúng hoàn toàn có thể thực thi thẳng trên những trình duyệt.

Xem thêm: 1968 Mệnh Gì? Xem Tử Vi Tuổi Mậu Thân Nam Mạng Sinh Năm Năm Sinh 1968 Là Cung Mệnh Gì

Mặc dù không thể thay thế trọn vẹn JS cùng nhiều chuyên viên vẫn khuyên chúng ta sử dụng tuy nhiên song hai technology này, tuy nhiên WebAssembly có một số lợi cố gắng so với JS đó là tốc độ nhanh hơn, tác dụng hơn, bình yên hơn cùng nhiều đặc điểm hữu ích khác.

Xem thêm: Tuổi Thơ Tiếng Anh Là Gì - Viết Về Tuổi Thơ Bằng Tiếng Anh Hay Nhất

Hiểu sâu rộng về WebAssembly bạn cũng có thể tham khảo loạt bài viết thú vị của Lin Clark với tiêu đề A cartoon intro to WebAssembly

Minh họa giải pháp dùng WebAssembly

Bài viết này minh họa một các đơn giản và dễ dàng nhất cách dùng WebAssembly bao gồm 4 bước:

Viết một quãng mã bằng C, C++ hay Rust. Bài viết này sẽ cần sử dụng C++Biên dịch nó thành WebAssembly. Công dụng là một tập tin nhị phân tất cả phần mở rộng là .wasmTích phù hợp tập tin wasm vào dự ánBiên dịch tập tin wasm thành hầu như thứ nhưng JS có thể sử dụngĐoạn mã C++

Dùng chế độ online WebAssembly Explorer (https://mbebenita.github.io/WasmExplorer/ ) mang đến phép chúng ta viết mã C/C++ và biên dịch bọn chúng thành tập tin wasm một cách hối hả mà không cần cài đặt ngẫu nhiên công cầm cố nào (tất nhiên phải tất cả Internet). đồ họa WebAssembly Explorer như sau:

*

Có thể coi WebAssembly Explorer y hệt như CodePen của WebAssembly. Gõ đoạn mã C++ sau đây đến ô phía bên trái của Explorer:

int Tong(int a, int b) return a + b;int Hieu (int a, int b) return a-b;Biên dịch mã C++Sau khi gõ đoạn mã, dấn nút COMPILE để biên dịch đoạn mã này

*

Kết quả sẽ hiển thị tin tức đến 3 cửa ngõ sổ:

*

Sau khi dìm nút COMPILE, mã C++ sẽ được biên dịch thành tập tin nhị phân wasm. Hành lang cửa số ở giữa là phiên phiên bản WAT (WebAssembly Text Format), một phiên bản có thể gọi được cho nhỏ người chúng ta và cửa sổ bên đề nghị là phiên phiên bản ngôn ngữ Assembly của tập tin này. Cùng xem lại phiên bạn dạng WAT của đoạn mã C++ chúng ta vừa biên dịch:

*

Tìm đế tự khóa “export

*

Từ export đầu tiên đi kèm từ memory liên quan đến bộ nhớ và chúng ta không yêu cầu hiểu sâu chiếc mã này cơ mà cần chăm chú hai export tiếp nối với những từ _Z4Tongii với _Z4Hieuii. Đây chính là hai hàm Tong cùng Hieu bọn họ đã định nghĩa trong mã C++ được biên dịch thành mã WebAssembly và chúng ta cần dùng đúng đắn hai thương hiệu này trong phần thực hiện mã WebAssembly trong bước sau này. Các tiền tố như _Z4 và hậu tố ii là những dấu hiệu được reviews bởi trình biên dịch C++.

Đưa tập tin cho dự án

Giả sử dự án bọn họ gồm nhì tập tin index.htmlscripts.js được lưu trong thư mục WebProject trong ổ đĩa cục bộ của sản phẩm tính bạn. Để đưa tập tin wasm đến dự án, bọn họ cần cài nó về vật dụng tính cá thể và lưu giữ trong folder WebProject bằng phương pháp nhấn nút tải về tại form giữa và đổi khác tên tập tin thành pheptinh:

*

Như vậy folder Web Project sẽ chứa 3 tập tin index.html, scripts.js cùng pheptinh.wasm. Mở tập tin index.html bởi một trình biên soạn thảo nào đó, lấy ví dụ như Notepad, với gõ các nội dung sau: