Ang proyekto sa elk nagpalambo sa usa ka compact JavaScript engine alang sa mga microcontroller

Ang usa ka bag-ong pagpagawas sa elk 2.0.9 JavaScript engine anaa, nga gitumong sa paggamit sa mga resource-constrained system sama sa microcontrollers, lakip ang ESP32 ug Arduino Nano boards nga adunay 2KB RAM ug 30KB Flash. Sa pag-operate sa gihatag nga virtual machine, igo na ang 100 bytes sa memorya ug 20 KB nga storage space. Ang code sa proyekto gisulat sa C nga pinulongan ug giapod-apod ubos sa lisensya sa GPLv2. Aron matukod ang proyekto, igo na ang usa ka C compiler - wala’y gigamit nga dugang nga mga dependency. Ang proyekto gipalambo sa mga nag-develop sa operating system alang sa IoT nga mga aparato nga Mongoose OS, ang mJS JavaScript engine ug ang naka-embed nga Mongoose web server (gigamit sa mga produkto gikan sa mga kompanya sama sa Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung ug Qualcomm. ).

Ang panguna nga katuyoan sa Elk mao ang paghimo og firmware alang sa mga microcontroller sa JavaScript nga naghimo sa lainlaing mga buluhaton sa automation. Ang makina angay usab alang sa pag-embed sa mga tigdumala sa JavaScript sa mga aplikasyon sa C/C++. Para magamit ang makina sa imong code, ibutang lang ang elk.c file sa source tree, iapil ang elk.h header file ug gamita ang js_eval call. Gitugotan ang pagtawag sa mga function nga gihubit sa C/C++ code gikan sa mga script sa JavaScript, ug vice versa. Ang JavaScript code gipatuman sa usa ka gipanalipdan nga palibot nga nahimulag gikan sa nag-unang code gamit ang usa ka tighubad nga dili makamugna og bytecode ug wala mogamit sa dinamikong alokasyon sa memorya.

Ang Elk nagpatuman sa usa ka gamay nga subset sa Ecmascript 6 nga espesipikasyon, apan igo alang sa paghimo sa nagtrabaho nga mga script. Sa partikular, kini nagsuporta sa usa ka batakang hugpong sa mga operator ug mga tipo, apan wala nagsuporta sa mga arrays, prototypes, kini, bag-o, ug delete nga mga ekspresyon. Gisugyot nga gamiton ang let imbes nga var ug const, ug samtang imbes buhaton, switch ug for. Walay standard library nga gihatag, i.e. walay ingon nga Date, Regexp, Function, String ug Number nga mga butang.

Source: opennet.ru

Idugang sa usa ka comment