This is an old revision of the document!
Lisez le tutorial a Mozilla Web Assembly Tutorial.
La documentation de Web Assembly est disponible a WebAssembly Semantics
On va utilizes la page pour Web Assembly a wat2wasm
Web Assembly est utilisé à partir de Javascript.
Pour la partie de Javascript, ecrivez le code suivante
const wasmInstance = new WebAssembly.Instance(wasmModule, { io:{ print: console.log } });
Un example de web assembly est:
(module (import "io" "print" (func $print (param $s i32))) (func $start i32.const 120 call $print ) (start $start) )
int main () { return 0; }
(module (func $start ) (start $start) )
int sum (int a, int b) { }
(module (func $sum (param $a i32) (param $b i32) (result $res i32) get_local $a get_local $b i32.add return ) )
int name () { int a; a = 0; return a; }
(module (func $name (local $a i32) (result $res i32) i32.const 0; set_local $a get_local $a return ) )
(module (import "io" "print" (func $print (param $n i32)) ;; use the print function i32.const 120 call $print )
if (a>b) { print (a); } else { print (b); }
;; import the print function get_local $a get_local $b i32.gt if get_local $a call $print else get_local $b call $print end
a=1; while (a<120) { print (a); a=a+1 }
;; import the print function i32.const 0 set_local $a block $endwhile loop $while get_local $a i32.const 120 i32.gt br_if $endwhile get_local $a call $print get_local $a i32.const 1 i32.add set_local $a br $while end $while end $endwhile
for (i=0; i<120; i++) { print (a); }
;; import the print function i32.const 0 get_local $i block $endfor loop $for get_local $i i32.const 120 i32.gt br_if $endfor get_local $i call $print get_local $i i32.const 1 i32.add set_local $i br $for end $for end $endfor
a=1; do { print (a); a=a+1 } while (a<=120);
;; import the print function i32.const 0 set_local $a loop $dowhile get_local $a call $print get_local $a i32.const 1 i32.add set_local $a get_local $a i32.const 120 i32.le br_if $dowhile end $dowhile