El proyecto elk desarrolla un motor JavaScript compacto para microcontroladores

Está disponible una nueva versión del motor JavaScript elk 2.0.9, destinada a su uso en sistemas con recursos limitados, como microcontroladores, incluidas las placas ESP32 y Arduino Nano con 2 KB de RAM y 30 KB de Flash. Para operar la máquina virtual proporcionada son suficientes 100 bytes de memoria y 20 KB de espacio de almacenamiento. El código del proyecto está escrito en lenguaje C y distribuido bajo la licencia GPLv2. Para construir el proyecto, es suficiente un compilador de C; no se utilizan dependencias adicionales. El proyecto está siendo desarrollado por los desarrolladores del sistema operativo para dispositivos IoT Mongoose OS, el motor JavaScript mJS y el servidor web integrado Mongoose (utilizado en productos de empresas como Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung y Qualcomm ).

El objetivo principal de Elk es crear firmware para microcontroladores en JavaScript que realicen diversas tareas de automatización. El motor también es adecuado para incorporar controladores de JavaScript en aplicaciones C/C++. Para usar el motor en su código, simplemente coloque el archivo elk.c en el árbol fuente, incluya el archivo de encabezado elk.h y use la llamada js_eval. Está permitido llamar a funciones definidas en código C/C++ desde scripts JavaScript y viceversa. El código JavaScript se ejecuta en un entorno protegido aislado del código principal mediante un intérprete que no genera código de bytes y no utiliza asignación de memoria dinámica.

Elk implementa un pequeño subconjunto de la especificación Ecmascript 6, pero suficiente para crear scripts de trabajo. En particular, admite un conjunto básico de operadores y tipos, pero no admite matrices, prototipos, expresiones this, new y delete. Se propone utilizar let en lugar de var y const, y while en lugar de do, switch y for. No se proporciona ninguna biblioteca estándar, es decir no existen tales objetos Fecha, Regexp, Función, Cadena y Número.

Fuente: opennet.ru

Añadir un comentario