Está disponible una nueva versión del motor JavaScript elk 2.0.9, diseñada para su uso en sistemas con recursos limitados, como microcontroladores, incluyendo placas ESP32 y Arduino Nano con 2 KB de RAM y 30 KB de Flash. Para funcionar, la máquina virtual proporcionada requiere solo 100 bytes de memoria y 20 KB de espacio en almacenamiento. El código del proyecto está escrito en lenguaje C y se distribuye bajo la licencia GPLv2. Para compilar el proyecto es suficiente un compilador de C, no se utilizan dependencias adicionales. El proyecto es desarrollado por los creadores del sistema operativo para dispositivos IoT Mongoose OS, el motor JavaScript mJS y embebido. un servidor web Mongoose (utilizado en productos de empresas como Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung y Qualcomm).
El propósito principal de Elk es crear firmware para microcontroladores en lenguaje JavaScript que realicen diversas tareas de automatización. El motor también es adecuado para incrustar controladores en JavaScript en aplicaciones en C/C++. Para usar el motor en su código, es suficiente colocar el archivo elk.c en el árbol de fuentes, incluir el archivo de cabecera elk.h y utilizar la llamada js_eval. Se permite la llamada desde scripts de JavaScript a funciones definidas en código C/C++, y viceversa. El código JavaScript se ejecuta en un entorno protegido e isolado del código principal utilizando un intérprete que no genera bytecode y no utiliza asignación dinámica de memoria.
En Elk se implementa un subconjunto pequeño, pero suficiente para crear scripts de trabajo, de la especificación Ecmascript 6. En particular, se admite un conjunto básico de operadores y tipos, pero no hay soporte para arreglos, prototipos, expresiones this, new y delete. En lugar de var y const se recomienda utilizar let, y en lugar de do, switch y for — while. No se proporciona una biblioteca estándar, es decir, no hay objetos como Date, Regexp, Function, String y Number.
Fuente: opennet.ru
