Het elk-project ontwikkelt een compacte JavaScript-engine voor microcontrollers

Er is een nieuwe versie van de JavaScript-engine elk 2.0.9 beschikbaar, gericht op gebruik in systemen met beperkte middelen, zoals microcontrollers, inclusief ESP32- en Arduino Nano-borden met 2 KB RAM en 30 KB Flash. Voor de werking van de aangeboden virtuele machine zijn slechts 100 bytes geheugen en 20 KB opslagruimte nodig. De code van het project is geschreven in C en wordt verspreid onder de GPLv2-licentie. Voor de opbouw van het project is voldoende een C-compiler — er zijn geen extra afhankelijkheden vereist. Het project wordt ontwikkeld door de ontwikkelaars van het Mongoose OS besturingssysteem voor IoT-apparaten, de mJS JavaScript-engine en embedded toepassingen. webserver Mongoose (toegepast in producten van bedrijven zoals Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung en Qualcomm).

Het belangrijkste doel van elk is het maken van firmware voor microcontrollers in JavaScript, die verschillende automatiseringstaken uitvoeren. De engine is ook geschikt voor het inbedden van JavaScript-handlers in C/C++-applicaties. Om de engine in uw code te gebruiken, hoeft u alleen het bestand elk.c in de bronbestanden te plaatsen, de header elk.h toe te voegen en de functie js_eval aan te roepen. Het is mogelijk om functies die in C/C++-code zijn gedefinieerd vanuit JavaScript-scripts aan te roepen en omgekeerd. De JavaScript-code wordt uitgevoerd in een beveiligde en van de hoofdcode geĆÆsoleerde omgeving met behulp van een interpreter die geen bytecode genereert en geen dynamische geheugenallocatie gebruikt.

Elk bevat een kleine, maar voldoende subset van de Ecmascript 6-specificatie voor het creĆ«ren van werkende scenario's. In het bijzonder worden een basisset van operators en types ondersteund, maar geen ondersteuning voor arrays, prototypes, de this-expressies, new en delete. In plaats van var en const wordt aanbevolen om let te gebruiken, en in plaats van do, switch en for — while. Er is geen standaardbibliotheek beschikbaar, dat wil zeggen dat er geen objecten zoals Date, Regexp, Function, String en Number zijn.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster