Il W3C assegna lo stato di standard consigliato da WebAssembly

Consorzio W3C annunciato sul conferire alla tecnologia WebAssembly lo status di standard raccomandato. WebAssembly fornisce codice intermedio di basso livello, universale e indipendente dal browser per l'esecuzione di applicazioni compilate da vari linguaggi di programmazione. WebAssembly si posiziona come una tecnologia portatile più promettente e multibrowser per la creazione di applicazioni web ad alte prestazioni. WebAssembly può essere utilizzato per attività ad alta intensità di prestazioni come codifica video, elaborazione audio, grafica e manipolazione 3D, sviluppo di giochi, operazioni crittografiche, calcoli matematici e creazione di implementazioni portatili di linguaggi di programmazione.

WebAssembly è simile in molti modi ad Asm.js, ma differisce in quanto è un formato binario non legato a JavaScript. WebAssembly non richiede un Garbage Collector poiché utilizza la gestione esplicita della memoria. Utilizzando JIT per WebAssembly, puoi raggiungere livelli di prestazioni vicini al codice nativo. Tra gli obiettivi principali di WebAssembly c'è quello di garantire portabilità, comportamento prevedibile ed esecuzione identica del codice su piattaforme diverse. Ultimamente anche WebAssembly ha avanzando come piattaforma universale per l'esecuzione sicura del codice su qualsiasi infrastruttura, sistema operativo e dispositivo, non limitato ai browser.

Il W3C ha standardizzato tre specifiche relative a WebAssembly:

  • Nucleo di assemblaggio web — descrive una macchina virtuale di basso livello per l'esecuzione del codice intermedio WebAssembly. Le risorse relative a WebAssembly sono disponibili in un formato ".wasm", simile a un file Java ".class", contenente dati statici e segmenti di codice per lavorare con tali dati.
  • API WebWebAssembly — definisce un'interfaccia di programmazione basata sul meccanismo Promise per la richiesta e l'esecuzione di risorse “.wasm”. Il formato della risorsa WebAssembly è ottimizzato per iniziare l'esecuzione senza attendere il caricamento completo del file, migliorando la reattività delle applicazioni Web.
  • Interfaccia JavaScript WebAssembly — Fornisce un'API per l'integrazione con JavaScript. Consente di ottenere valori e passare parametri alle funzioni WebAssembly. L'esecuzione di WebAssembly segue il modello di sicurezza JavaScript e tutta l'interazione con il sistema principale viene eseguita allo stesso modo dell'esecuzione del codice JavaScript.

In futuro, prevediamo di preparare specifiche per funzionalità di WebAssembly come:

  • Multithreading con memoria condivisa e accesso alla memoria atomica;
  • Operazioni vettoriali basate su SIMD, che consentono la parallelizzazione dell'esecuzione del ciclo;
  • Tipi di riferimento per fare riferimento direttamente a oggetti dal codice WebAssembly;
  • Possibilità di chiamare funzioni senza spendere spazio aggiuntivo nello stack;
  • Integrazione con moduli ECMAScript: la possibilità di caricare codice WebAssembly da JavaScript come moduli conformi alla specifica ECMAScript 6;
  • Modalità raccoglitore di rifiuti;
  • Interfacce di debug;
  • ERO IO (WebAssembly System Interface) - API per l'interazione diretta con il sistema operativo (API POSIX per lavorare con file, socket, ecc.).

    Fonte: opennet.ru

Aggiungi un commento