V8 JavaScript қозғалтқышын әзірлеушілер
Декомпилятор
Мысалы, wasm-де құрастырылған бастапқы C функциясы
typedef struct { float x, y, z; } vec3;
қалқымалы нүкте(const vec3 *a, const vec3 *b) {
a->x * b->x + қайтарыңыз
a->y * b->y +
a->z * b->z;
}
wasm-decompile утилитасы жалған тілге декомпиляцияланады
нүкте функциясы(a:{ a:float, b:float, c:float},
b:{ a: қалтқы, б: қалқыма, с: қалқыма}): қалқыма {
қайтару aa * ba + ab * bb + ac * bc
}
ал «.wat» мәтіндік пішіміне түрлендіру келесідей болады
(функ $нүкте (0 түрі) (i32 i32 параметрі) (f32 нәтижесі)
(f32.add
(f32.add
(f32.mul
(f32.load
(local.get 0))
(f32.load
(local.get 1)))
(f32.mul
(f32.жүктеменің ауытқуы=4
(local.get 0))
(f32.жүктеменің ауытқуы=4
(local.get 1))))
(f32.mul
(f32.жүктеменің ауытқуы=8
(local.get 0))
(f32.жүктеменің ауытқуы=8
(local.get 1))))))
Ақпарат көзі: opennet.ru