์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
ํŠน์ง•
๋ช…๋ นํ˜•, ๊ตฌ์กฐ์ , ์ •์  ํƒ€์ดํ•‘
์ตœ์ดˆ ๊ณต๊ฐœ
2017๋…„ 3์›”
์„ค๊ณ„
๊ฐœ๋ฐœ
๋ผ์ด์„ ์Šค
ํŒŒ์ผ ํ™•์žฅ์ž
.wat
.wasm

1. ๊ฐœ์š”2. ์—ญ์‚ฌ3. ์˜ˆ์‹œ4. ์ฃผ์š” ํ”„๋ ˆ์ž„์›Œํฌ


1. ๊ฐœ์š”[ํŽธ์ง‘]

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ์›น ๋ธŒ๋ผ์šฐ์ €์— ์‹คํ–‰๋˜๋Š” ์šฉ๋„๋กœ ๋งŒ๋“ค์–ด์ง„ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด/๋ฐ”์ดํŠธ์ฝ”๋“œ ์–ธ์–ด์ด๋‹ค. ์ฃผ๋กœ C, C++์™€ Rust ๊ฐ™์€ ์ปดํŒŒ์ผ๋˜๋Š” ์–ธ์–ด๋กœ ์šฐ์„  ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘์„ฑ๋˜๊ณ  ์ปดํŒŒ์ผํ•œ๋‹ค.

2. ์—ญ์‚ฌ[ํŽธ์ง‘]

2015๋…„๋ถ€ํ„ฐ JavaScript์˜ ๋А๋ฆฐ ์†๋„๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.

3. ์˜ˆ์‹œ[ํŽธ์ง‘]

C ์†Œ์Šค ์ฝ”๋“œ
#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

4. ์ฃผ์š” ํ”„๋ ˆ์ž„์›Œํฌ[ํŽธ์ง‘]

  • Blazor - C# ๊ธฐ๋ฐ˜. ASP.NET์— ํ…œํ”Œ๋ฆฟ ์—”์ง„์ธ Razor์„ ์›น์–ด์…ˆ๋ธ”๋ฆฌ๋กœ ํฌํŠธํ–ˆ๋‹ค.