Thug luchd-leasachaidh V8 a-steach decompiler airson WebAssembly

Luchd-leasachaidh an einnsean V8 JavaScript air a thaisbeanadh goireasachd wasm-decompile, a 'toirt cothrom dhut an riochdachadh binary eadar-mheadhanach a dhì-chothromachadh Lìn eile a-steach do chànan meallta a ghabhas leughadh mar chuimhneachan air JavaScript agus C. Tha am meallta-chànan a thathar a’ moladh tòrr nas fhasa a thuigsinn agus nas freagarraiche airson parsadh làimhe na riochdachadh teacsa WebAssembly ann an cruth “.wat”, a tha nas fhaisge air cànan cruinneachaidh na ri cànanan àrd-ìre. Anns a 'chùis seo, tha an decompilation a' nochdadh riochdachadh Wasm cho iomlan 'sa ghabhas.

Decompiler air a ghabhail a-steach air a ghabhail a-steach san inneal WABT, a bheir seachad eadar-theangachadh eadar riochdachaidhean binary agus teacsa de WebAssembly, a bharrachd air parsadh, giullachd, atharrachadh agus dearbhadh faidhlichean wasm. Tha WABT cuideachd a’ leasachadh goireas bham2c, a leigeas le faidhlichean wasm a bhith air an toirt a-steach do chòd C co-ionann a ghabhas a chur ri chèile le compiler C, ach nach eil mòran eadar-dhealaichte a thaobh so-leughaidh bho riochdachadh teacsa "wat".

Mar eisimpleir, an gnìomh C tùsail air a chur ri chèile ann an wasm

typedef struct {fleòdradh x, y, z; } vec3;

dot fleòdraidh (const vec3 * a, const vec3 * b) {
tilleadh a-> x * b-> x +
a-> y * b->y +
a->z * b->z;
}

thèid a dhì-chàradh leis a’ ghoireas wasm-decompile gu cànan meallta

dot gnìomh (a: {a: fleòdradh, b: fleòdradh, c: fleòdradh },
b:{ a: fleòdradh, b: fleòdradh, c: fleòdradh }): fleòdradh {
tilleadh aa * ba + ab * bb + ac * bc
}

fhad 'sa bhiodh an tionndadh gu cruth teacsa ".wat" a' coimhead mar seo

(func $ dot (seòrsa 0) (param i32 i32) (toradh f32)
(f32. cuir
(f32. cuir
(f32.mul
(f32. luchdachadh
(ionadail.get 0))
(f32. luchdachadh
(ionadail.get 1)))
(f32.mul
(f32.load offset=4
(ionadail.get 0))
(f32.load offset=4
(ionadail.get 1))))
(f32.mul
(f32.load offset=8
(ionadail.get 0))
(f32.load offset=8
(ionadail.get 1))))))

Source: fosgailtenet.ru

Cuir beachd ann