Projekt elk vyvíja kompaktný JavaScript engine pre mikrokontroléry

K dispozícii je nové vydanie elk 2.0.9 JavaScript motora zameraného na použitie v systémoch s obmedzenými zdrojmi, ako sú mikrokontroléry, vrátane dosiek ESP32 a Arduino Nano s 2 KB RAM a 30 KB Flash. Na prevádzku poskytnutého virtuálneho stroja postačuje 100 bajtov pamäte a 20 KB úložného priestoru. Kód projektu je napísaný v jazyku C a je distribuovaný pod licenciou GPLv2. Na zostavenie projektu stačí kompilátor C - nepoužívajú sa žiadne ďalšie závislosti. Projekt vyvíjajú vývojári operačného systému pre zariadenia internetu vecí Mongoose OS, mJS JavaScript engine a embedded web server Mongoose (používaný v produktoch spoločností ako Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung a Qualcomm ).

Hlavným účelom Elku je vytvoriť firmvér pre mikrokontroléry v JavaScripte, ktoré vykonávajú rôzne automatizačné úlohy. Engine je vhodný aj na vkladanie obslužných programov JavaScriptu do aplikácií C/C++. Ak chcete použiť motor vo svojom kóde, stačí umiestniť súbor elk.c do zdrojového stromu, zahrnúť hlavičkový súbor elk.h a použiť volanie js_eval. Je povolené volať funkcie definované v kóde C/C++ zo skriptov JavaScript a naopak. Kód JavaScript sa vykonáva v chránenom prostredí izolovanom od hlavného kódu pomocou tlmočníka, ktorý negeneruje bajtkód a nepoužíva dynamickú alokáciu pamäte.

Elk implementuje malú podmnožinu špecifikácie Ecmascript 6, ale postačujúcu na vytváranie pracovných skriptov. Podporuje najmä základnú sadu operátorov a typov, ale nepodporuje polia, prototypy, tento, nový a výrazy delete. Navrhuje sa použiť let namiesto var a const a kým namiesto do, prepnúť a pre. Neposkytuje sa žiadna štandardná knižnica, t.j. neexistujú žiadne takéto objekty Date, Regexp, Function, String a Number.

Zdroj: opennet.ru

Pridať komentár