W ramach projektu elk opracowano kompaktowy silnik JavaScript dla mikrokontrolerów

Dostępna jest nowa wersja silnika JavaScript elk 2.0.9, przeznaczona do stosowania w systemach o ograniczonych zasobach, takich jak mikrokontrolery, w tym płyty ESP32 i Arduino Nano z 2KB RAM i 30KB Flash. Do obsługi dostarczonej maszyny wirtualnej wystarczy 100 bajtów pamięci i 20 KB przestrzeni dyskowej. Kod projektu napisany jest w języku C i rozpowszechniany na licencji GPLv2. Do zbudowania projektu wystarczy kompilator C - nie stosuje się żadnych dodatkowych zależności. Projekt rozwijany jest przez twórców systemu operacyjnego dla urządzeń IoT Mongoose OS, silnika JavaScript mJS oraz wbudowanego serwera WWW Mongoose (wykorzystywanego w produktach takich firm jak Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung i Qualcomm ).

Głównym celem Elka jest tworzenie oprogramowania dla mikrokontrolerów w języku JavaScript realizujących różne zadania automatyzacji. Silnik nadaje się również do osadzania procedur obsługi JavaScript w aplikacjach C/C++. Aby użyć silnika w swoim kodzie, po prostu umieść plik elk.c w drzewie źródłowym, dołącz plik nagłówkowy elk.h i użyj wywołania js_eval. Dopuszczalne jest wywoływanie funkcji zdefiniowanych w kodzie C/C++ ze skryptów JavaScript i odwrotnie. Kod JavaScript wykonywany jest w chronionym środowisku odizolowanym od kodu głównego przy użyciu interpretera, który nie generuje kodu bajtowego i nie wykorzystuje dynamicznej alokacji pamięci.

Elk implementuje mały podzbiór specyfikacji Ecmascript 6, ale wystarczający do tworzenia działających skryptów.W szczególności obsługuje podstawowy zestaw operatorów i typów, ale nie obsługuje tablic, prototypów, wyrażeń this, new i usuwania. Proponuje się użycie let zamiast var i const, a zamiast do, switch i for. Nie dostarczono standardowej biblioteki, tj. nie ma takich obiektów typu Date, Regexp, Function, String i Number.

Źródło: opennet.ru

Dodaj komentarz