์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
ํน์ง | ๋ช
๋ นํ, ๊ตฌ์กฐ์ , ์ ์ ํ์ดํ |
์ต์ด ๊ณต๊ฐ | 2017๋
3์ |
์ค๊ณ | |
๊ฐ๋ฐ | |
๋ผ์ด์ ์ค | |
ํ์ผ ํ์ฅ์ | .wat .wasm |
1. ๊ฐ์[ํธ์ง]
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก, ์น ๋ธ๋ผ์ฐ์ ์ ์คํ๋๋ ์ฉ๋๋ก ๋ง๋ค์ด์ง ์ด์
๋ธ๋ฆฌ์ด/๋ฐ์ดํธ์ฝ๋ ์ธ์ด์ด๋ค. ์ฃผ๋ก C, C++์ Rust ๊ฐ์ ์ปดํ์ผ๋๋ ์ธ์ด๋ก ์ฐ์ ํ๋ก๊ทธ๋จ์ด ์์ฑ๋๊ณ ์ปดํ์ผํ๋ค.
2. ์ญ์ฌ[ํธ์ง]
2015๋
๋ถํฐ JavaScript์ ๋๋ฆฐ ์๋๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์๋ค.
3. ์์[ํธ์ง]
C ์์ค ์ฝ๋
WebAssembly IR
WebAssembly ๋ฐ์ด๋๋ฆฌ
#include <stdio.h>
int factorial(int n) {
if (n == 0)
return 1;
else
return n * factorial(n-1);
}WebAssembly IR
get_local 0
i64.eqz
if (result i64)
i64.const 1
else
get_local 0
get_local 0
i64.const 1
i64.sub
call 0
i64.mul
end
WebAssembly ๋ฐ์ด๋๋ฆฌ
20 00
50
04 7E
42 01
05
20 00
20 00
42 01
7D
10 00
7E
0B