wasm3, eadar-theangair WebAssembly a ’leigeil a-mach a’ chiad dreach aige

W3

O chionn ghoirid chaidh a ’chiad dreach de wasm3 a leigeil ma sgaoil, a tha eadar-theangair glè luath de chòd eadar-mheadhanach le WebAssemblyLeis gu bheil e air a dhealbhadh gu sònraichte gus tagraidhean WebAssembly a ruith air microcontrollers agus àrd-ùrlaran far nach eil buileachadh JIT airson WebAssembly, chan eil cuimhne gu leòr ann airson JIT a bhith ag obair, no cruthachadh duilleagan cuimhne so-ghnìomhaichte a dh ’fheumar airson Gnìomhachadh JIT.

Dhaibhsan nach eil eòlach air WebAssembly, bu chòir dhut fios a bhith agad gu bheil seo cànan aig ìre ìosal, air a dhealbhadh an toiseach mar chruth targaid nuair a bhios e a ’cur ri chèile bho C agus C ++, ged a tha e cuideachd a’ toirt taic do chòd stòr airson cànanan eile, leithid Rust agus Go. Tha an cruth còd binary so-ghiùlain seo air a chleachdadh airson làn sgriobtaichean a thoirt gu buil bhon bhrobhsair taobh cliaint.

Clàr-innse

Mu wasm3

Bidh Wasm3 a ’dol seachad air deuchainnean co-chòrdalachd leis an t-sònrachadh WebAssembly 1.0 agus faodar a chleachdadh gus mòran thagraidhean WASI a ruith, a ’toirt seachad dìreach 4-5 uair nas lugha de choileanadh na einnseanan JIT agus 11.5 uair nas lugha na coileanadh còd dùthchasach.

An coimeas ri cleasaichean eile bho WebAssembly (wac, beatha, wasm-micro-runtime), bha wasm3 15.8 uair nas luaithe.

Thòisich Wasm3 mar phròiseact rannsachaidh agus tha e fhathast mar sin ann an iomadh dòigh. Tha luachadh an motair ann an àrainneachdan eadar-dhealaichte mar phàirt den sgrùdadh. Leis gu bheil Lua, JS, Python, Lisp, (…) againn a ’ruith air MCU, tha WebAssembly gu dearbh na roghainn gealltanach eile. Tha e a ’solarachadh àrainneachd gu tur iomallach, le deagh mhìneachadh agus ro-innse. Am measg nan cùisean cleachdaidh làimhseachail, is urrainn dhuinn coimpiutaireachd adhartach, sgrìobhadh, cur an gnìomh riaghailt IoT, cùmhnantan blockchain, msaa a liostadh.

Samh3 feumaidh 64Kb de chuimhne airson còd agus 10Kb de RAM, dè thu a ’ceadachadh am pròiseact a chleachdadh gus tagraidhean a chuir ri chèile ann an WebAssembly ann am microcontrollers mar Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310). , a bharrachd air bùird agus coimpiutairean stèidhichte air ailtireachd x86, x64, ARM, MIPS, RISC-V, agus Xtens.

Tha àrd-choileanadh air a choileanadh le bhith a ’cleachdadh innleachd Massey Meta Machine (M3) san eadar-theangair, anns a bheil, gus lùghdachadh a dhèanamh air an uachdar de bhith a ’còdachadh an bytecode, am bytecode air eadar-theangachadh gu for-ghnìomhach ann an obrachaidhean nas èifeachdaiche a ghineas còd inneal fuadain agus am modal cur gu bàs an inneal brìgheil cruachadh gu bhith na dhòigh clàraidh nas èifeachdaiche tha na h-obraichean ann am M3 nan gnìomhan C, aig a bheil argamaidean mar chlàran an inneal brìgheil, a chithear. anns na clàran CPU.

Bidh sruthan obrach tric airson optimization a ’tionndadh gu obrachaidhean geàrr-chunntais.

Cuideachd, Faodar toraidhean an sgrùdaidh a choimhead aig WebAssembly air an lìon, às deidh sgrùdadh a dhèanamh air 948 mìle de na làraich as mòr-chòrdte a chaidh a mheas le Alexa, lorg an luchd-rannsachaidh sin Tha WebAssembly air a chleachdadh le 1639 làrach (0.17%), is e sin 1 ann an 600 làrach.

Gu h-iomlan, nochd na làraich-lìn an luchd de mhodalan WebAssembly 1950, le 150 dhiubh gun samhail.

Nuair a bhathar a ’beachdachadh air farsaingeachd WebAssembly, chaidh co-dhùnaidhean briseadh-dùil a tharraing: ann am barrachd air 50% de chùisean, chaidh WebAssembly a chleachdadh airson adhbharan droch-rùnach, mar eisimpleir, gus cryptocurrencies (55,7%) a mhèinneadh agus gus còd fhalach bho sgriobtaichean droch-rùnach (0,2 , XNUMX%).

De shiostaman obrachaidh le taic airson Wasm3, is urrainn dhuinn Linux a lorg a ’toirt a-steach routers stèidhichte OpenWRT, Windows, macOS, Android agus iOS. Bha e comasach cuideachd wasm3 a chur ri chèile a-steach don chòd WebAssembly eadar-mheadhanach gus an eadar-theangair a ruith ann am brobhsair no airson fèin-aoigheachd.

De na cleachdaidhean dligheach de WebAssembly, chaidh amharc air coileanadh leabharlainn (38.8%), cruthachadh geama (3.5%), agus coileanadh còd dùthchasach neo-JavaScript (0.9%). Ann an 14,9% de na cùisean, chaidh WebAssembly a chleachdadh gus sgrùdadh a dhèanamh air an àrainneachd airson comharrachadh luchd-cleachdaidh (lorgan-meòir).

Feuch wasm3

Dhaibhsan aig a bheil ùidh ann a bhith a ’cleachdadh an eadar-theangair seo air an t-siostam aca, faodaidh iad sùil a thoirt air na sgrìobhainnean a bharrachd air còd a ’phròiseict a tha sgrìobhte ann an C agus air a sgaoileadh fo chead MIT, Anns a ’cheangal a leanas.


Tha susbaint an artaigil a ’cumail ri na prionnsapalan againn de moraltachd deasachaidh. Gus aithris a dhèanamh air mearachd cliog an seo.

Bi a 'chiad fhear a thog beachd

Fàg do bheachd

Seòladh-d cha tèid fhoillseachadh. Feum air achaidhean air an comharrachadh le *

*

*

  1. Uallach airson an dàta: Miguel Ángel Gatón
  2. Adhbhar an dàta: Smachd air SPAM, riaghladh bheachdan.
  3. Dìleab: Do chead
  4. Conaltradh an dàta: Cha tèid an dàta a thoirt do threas phàrtaidhean ach a-mhàin fo dhleastanas laghail.
  5. Stòradh dàta: Stòr-dàta air a chumail le Occentus Networks (EU)
  6. Còraichean: Aig àm sam bith faodaidh tu am fiosrachadh agad a chuingealachadh, fhaighinn air ais agus a dhubhadh às.