WEBASSEMBLY LÀ GÌ

     

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

WebAssembly

WebAssembly không phải là ngôn từ lập trình như JavaScript mà là một định dạng nhị phân nấc thấp mang lại web. Nút thấp có nghĩa là gần với ngôn từ máy và bởi vì điều này mà lại nó được xem là ngôn ngữ Assembly cho trái đất Web và cái thương hiệu WebAssembly ra đời.

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

Nhưng WebAssembly vì chưng đâu nhưng mà có? họ biết rằng, trước khi mở ra WebAssembly, các trình chăm chút chỉ có thể thực thi HTML, CSS với 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 để mắt tới phải trải qua nhiều quá trình trung gian. Khi WebAssembly xuất hiện, các đoạn mã viết bằng các ngôn ngữ C, C++ với Rust hoàn toàn có thể được biên dịch thành WebAssembly – đơn giản đó chỉ là một trong tập tin nhị phân gồm phần không ngừng mở rộng là WASM và dưới hình hài new này chúng rất có thể thực thi thẳng trên các trình duyệt.

Xem thêm: Bạn Phù Hợp Với Khối Xã Hội Và Tự Nhiên Gồm Những Môn Nào ? Ngành Nào

Mặc dù không thể cầm cố thế trọn vẹn JS với nhiều chuyên gia vẫn khuyên chúng ta sử dụng song song hai technology này, tuy thế WebAssembly có một trong những lợi nuốm so cùng với JS kia là tốc độ nhanh hơn, kết quả hơn, an toàn hơn cùng nhiều đặc điểm hữu ích khác.

Xem thêm: Từ Điển Anh Việt " Highlight Là Gì ? Tất Tần Tật Về Highlight

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

Minh họa biện pháp dùng WebAssembly

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

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

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

*

Có thể xem WebAssembly Explorer giống như CodePen của WebAssembly. Gõ đoạn mã C++ tiếp 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ã, nhận nút COMPILE để biên dịch đoạn mã này

*

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

*

Sau khi thừa nhận 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 bạn dạng WAT (WebAssembly Text Format), một phiên bạn dạng có thể hiểu được cho bé người bọn họ và hành lang cửa số bên phải là phiên bạn dạng ngôn ngữ Assembly của tập tin này. Thuộc xem lại phiên bản WAT của đoạn mã C++ họ vừa biên dịch:

*

Tìm đế trường đoản cú khóa “export

*

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

Đưa tập tin mang lại dự án

Giả sử dự án bọn họ gồm nhì tập tin index.html cùng scripts.js được giữ trong folder WebProject trong ổ đĩa viên bộ của sản phẩm tính bạn. Để đưa tập tin wasm cho dự án, chúng ta cần cài nó về sản phẩm công nghệ tính cá thể và lưu lại trong folder WebProject bằng cách nhấn nút tải về tại khung giữa và biến đổi tên tập tin thành pheptinh:

*

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