È disponibile una nuova versione del motore JavaScript elk 2.0.9, progettato per l'uso in sistemi con risorse limitate, come microcontrollori, incluse le schede ESP32 e Arduino Nano con 2 KB di RAM e 30 KB di Flash. Per il funzionamento della macchina virtuale fornita sono sufficienti 100 byte di memoria e 20 KB di spazio di archiviazione. Il codice del progetto è scritto in linguaggio C e distribuito sotto licenza GPLv2. Per compilare il progetto è sufficiente un compilatore C — non vengono utilizzate dipendenze aggiuntive. Il progetto è sviluppato dai creatori del sistema operativo per dispositivi IoT Mongoose OS, del motore JavaScript mJS e dell'integrazione. web server Mongoose (utilizzato in prodotti di aziende come Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung e Qualcomm).
L'obiettivo principale di Elk è la creazione di firmware per microcontrollori in linguaggio JavaScript, eseguendo vari compiti di automazione. Il motore è anche adatto per l'inserimento di gestori in JavaScript in applicazioni C/C++. Per utilizzare il motore nel proprio codice, basta inserire il file elk.c nell'albero dei sorgenti, includere il file di intestazione elk.h e utilizzare la chiamata js_eval. È consentito richiamare funzioni definite nel codice C/C++ dai script JavaScript, e viceversa. Il codice JavaScript viene eseguito in un ambiente protetto e isolato dal codice principale, utilizzando un interprete che non genera bytecode e non utilizza assegnazione dinamica della memoria.
In Elk è implementato un piccolo, ma sufficiente sottoinsieme della specifica Ecmascript 6 per la creazione di scenari operativi. In particolare, è supportato un set base di operatori e tipi, ma non ci sono supporti per array, prototipi, espressioni this, new e delete. Si consiglia di utilizzare let invece di var e const, e di sostituire do, switch e for con while. Non è fornita una libreria standard, ovvero non ci sono oggetti come Date, Regexp, Function, String e Number.
Fonte: opennet.ru
