Projekt elk vyvíjí kompaktní JavaScript engine pro mikrokontroléry

Je k dispozici nové vydání elk 2.0.9 JavaScript enginu zaměřené na použití na systémech s omezenými zdroji, jako jsou mikrokontroléry, včetně desek ESP32 a Arduino Nano s 2KB RAM a 30KB Flash. Pro provoz poskytnutého virtuálního stroje stačí 100 bajtů paměti a 20 KB úložného prostoru. Kód projektu je napsán v jazyce C a distribuován pod licencí GPLv2. K sestavení projektu postačí kompilátor C – nepoužívají se žádné další závislosti. Projekt vyvíjejí vývojáři operačního systému pro zařízení internetu věcí Mongoose OS, JavaScript engine mJS a vestavěný webový server Mongoose (používaný v produktech společností jako Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung a Qualcomm ).

Hlavním účelem Elk je vytvořit firmware pro mikrokontroléry v JavaScriptu, které provádějí různé automatizační úlohy. Engine je také vhodný pro vkládání obslužných rutin JavaScriptu do aplikací C/C++. Chcete-li použít engine ve svém kódu, stačí umístit soubor elk.c do zdrojového stromu, zahrnout hlavičkový soubor elk.h a použít volání js_eval. Je povoleno volat funkce definované v kódu C/C++ z JavaScript skriptů a naopak. Kód JavaScript se spouští v chráněném prostředí izolovaném od hlavního kódu pomocí interpretu, který negeneruje bajtkód a nepoužívá dynamickou alokaci paměti.

Elk implementuje malou podmnožinu specifikace Ecmascript 6, ale pro tvorbu pracovních skriptů dostačující. Zejména podporuje základní sadu operátorů a typů, ale nepodporuje pole, prototypy ani tento, nový a smazat výrazy. Navrhuje se použít let místo var a const a zatímco místo do, switch a for. Žádná standardní knihovna není poskytnuta, tzn. neexistují žádné takové objekty Date, Regexp, Function, String a Number.

Zdroj: opennet.ru

Přidat komentář