WebAssembly

문서의 이전 버전(r3)을 보고 있습니다.

역사 raw
대문 랜덤 문서 최근 토론
WebAssembly
특징
명령형, 구조적, 정적 타이핑
최초 공개
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을 웹어셈블리로 포트했다.