Đã có sẵn bản xem trước tiêu chuẩn WebAssembly 2.0

W3C đã xuất bản bản dự thảo thông số kỹ thuật mới nhằm chuẩn hóa phần mềm trung gian WebAssembly 2.0 và API liên quan của nó, cho phép tạo các ứng dụng hiệu suất cao có thể di động trên các trình duyệt và nền tảng phần cứng. WebAssugging cung cấp mã trung gian cấp thấp, phổ quát, độc lập với trình duyệt để chạy các ứng dụng được biên dịch từ nhiều ngôn ngữ lập trình khác nhau. Bằng cách sử dụng JIT cho WebAssugging, bạn có thể đạt được mức hiệu suất gần bằng mã gốc.

Công nghệ WebAssugging có thể được sử dụng để thực hiện các tác vụ hiệu suất cao trong trình duyệt, chẳng hạn như mã hóa video, xử lý âm thanh, đồ họa và thao tác 3D, phát triển trò chơi, hoạt động mã hóa và tính toán toán học bằng cách cho phép viết mã bằng các ngôn ngữ được biên dịch như C/C++ .

Một trong những mục tiêu chính của WebAssugging là đảm bảo tính di động, hành vi có thể dự đoán được và thực thi mã giống hệt nhau trên các nền tảng khác nhau. Gần đây, WebAssembly cũng đã được quảng bá như một nền tảng phổ quát để thực thi mã một cách an toàn trên mọi cơ sở hạ tầng, hệ điều hành và thiết bị, không giới hạn ở các trình duyệt.

W3C đã xuất bản ba thông số kỹ thuật dự thảo cho WebAssembly 2.0:

  • WebAssugging Core - Mô tả một máy ảo cấp thấp để chạy mã trung gian WebAssugging. Các tài nguyên liên kết với WebAssembly được phân phối ở định dạng ".wasm", tương tự như tệp ".class" trong Java, chứa dữ liệu tĩnh và các đoạn mã để làm việc với dữ liệu đó.
  • Giao diện JavaScript WebAssugging - Cung cấp API để tích hợp với JavaScript. Cho phép bạn nhận các giá trị và truyền tham số cho các hàm WebAssembly. Việc thực thi WebAssugging tuân theo mô hình bảo mật JavaScript và mọi tương tác với hệ thống chính được thực hiện giống như cách thực thi mã JavaScript.
  • API WebAssembly - Xác định giao diện lập trình dựa trên cơ chế Promise để yêu cầu và thực thi tài nguyên ".wasm". Định dạng tài nguyên WebAssembly được tối ưu hóa để bắt đầu thực thi mà không cần đợi tệp tải đầy đủ, giúp cải thiện khả năng phản hồi của ứng dụng web.

Những thay đổi chính trong WebAssugging 2.0 so với phiên bản đầu tiên của tiêu chuẩn:

  • Hỗ trợ loại vectơ v128 và các lệnh vectơ liên quan cho phép bạn thực hiện các hành động trên nhiều giá trị số song song (SIMD, lệnh đơn nhiều dữ liệu).
  • Khả năng nhập và xuất các biến toàn cục có thể thay đổi, cho phép liên kết toàn cục cho các giá trị như con trỏ ngăn xếp trong C++.
  • Hướng dẫn chuyển đổi float sang int mới, thay vì đưa ra một ngoại lệ khi kết quả tràn, hãy trả về giá trị tối thiểu hoặc tối đa có thể (cần thiết cho SIMD).
  • Hướng dẫn mở rộng dấu của số nguyên (tăng độ sâu bit của số trong khi vẫn giữ nguyên dấu và giá trị).
  • Hỗ trợ các khối và hàm trả về nhiều giá trị (ngoài việc truyền nhiều tham số cho hàm).
  • Triển khai các hàm JavaScript BigInt64Array và BigUint64Array để chuyển đổi giữa loại JavaScript BigInt và cách biểu diễn WebAssembly của số nguyên 64 bit.
  • Hỗ trợ các loại tham chiếu (funcref và externref) và các hướng dẫn liên quan (select, ref.null, ref.func và ref.is_null).
  • Các lệnh Memory.copy, Memory.fill, Memory.init và data.drop để sao chép dữ liệu giữa các vùng bộ nhớ và xóa các vùng bộ nhớ.
  • Hướng dẫn truy cập và sửa đổi trực tiếp các bảng (table.set, table.get, table.size, table.grow). Khả năng tạo, nhập và xuất nhiều bảng trong một mô-đun. Các chức năng sao chép/điền bảng ở chế độ hàng loạt (table.copy, table.init và elem.drop).

Nguồn: opennet.ru

Thêm một lời nhận xét