Das Projekt elk entwickelt einen kompakten JavaScript-Interpreter für Mikrocontroller.

Die neue Version des JavaScript-Engines elk 2.0.9 ist verfügbar. Diese ist für ressourcenbegrenzte Systeme wie Mikrocontroller konzipiert, einschließlich ESP32- und Arduino Nano-Boards mit nur 2 KB RAM und 30 KB Flash-Speicher. Für den Betrieb der bereitgestellten virtuellen Maschine sind lediglich 100 Byte Speicher und 20 KB Speicherplatz erforderlich. Der Projektcode ist in C geschrieben und steht unter der GPLv2-Lizenz. Zur Erstellung des Projekts ist lediglich ein C-Compiler nötig – zusätzliche Abhängigkeiten sind nicht erforderlich. Das Projekt wird von den Entwicklern des Mongoose OS für IoT-Geräte, dem JavaScript-Engine mJS und Embedded-Technologien vorangetrieben. Webserver Mongoose (verwendet in Produkten von Unternehmen wie Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung und Qualcomm).

Die Hauptfunktion von Elk besteht darin, Firmware für Mikrocontroller in JavaScript zu erstellen, die verschiedene Automatisierungsaufgaben ausführen. Die Engine eignet sich auch zur Einbettung von JavaScript-Handlern in C/C++-Anwendungen. Um die Engine in Ihrem Code zu verwenden, müssen Sie lediglich die Datei elk.c in Ihre Quelltextverzeichnisse einfügen, die Header-Datei elk.h einbinden und den Befehl js_eval verwenden. Der Aufruf von Funktionen, die im C/C++-Code definiert sind, aus JavaScript-Skripten und umgekehrt ist zulässig. JavaScript-Code wird in einer sicheren, vom Hauptcode isolierten Umgebung mit einem Interpreter ausgeführt, der keinen Bytecode generiert und keine dynamische Speicherzuweisung verwendet.

In Elk ist eine kleine, aber ausreichende Untermenge der Ecmascript 6-Spezifikation implementiert, um funktionsfähige Skripte zu erstellen. Insbesondere wird eine grundlegende Reihe von Operatoren und Typen unterstützt, jedoch keine Arrays, Prototypen, the this-Ausdrücke, new und delete. Anstelle von var und const wird empfohlen, let zu verwenden, und statt do, switch und for kann while eingesetzt werden. Es steht keine Standardbibliothek zur Verfügung, d.h. es gibt keine Objekte wie Date, Regexp, Function, String und Number.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster