Elk-projektet utvecklar en kompakt JavaScript-motor för mikrokontroller

En ny version av elk 2.0.9 JavaScript-motorn är tillgänglig, avsedd för användning på resursbegränsade system som mikrokontroller, inklusive ESP32 och Arduino Nano-kort med 2KB RAM och 30KB Flash. För att driva den medföljande virtuella maskinen räcker det med 100 byte minne och 20 KB lagringsutrymme. Projektkoden är skriven på C-språk och distribueras under GPLv2-licensen. För att bygga projektet räcker det med en C-kompilator - inga ytterligare beroenden används. Projektet utvecklas av utvecklarna av operativsystemet för IoT-enheter Mongoose OS, mJS JavaScript-motorn och den inbäddade Mongoose webbservern (används i produkter från företag som Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung och Qualcomm ).

Huvudsyftet med Elk är att skapa firmware för mikrokontroller i JavaScript som utför olika automationsuppgifter. Motorn är också lämplig för att bädda in JavaScript-hanterare i C/C++-applikationer. För att använda motorn i din kod, placera bara filen elk.c i källträdet, inkludera elk.h-huvudfilen och använd anropet js_eval. Det är tillåtet att anropa funktioner definierade i C/C++-kod från JavaScript-skript och vice versa. JavaScript-kod exekveras i en skyddad miljö isolerad från huvudkoden med hjälp av en tolk som inte genererar bytekod och inte använder dynamisk minnesallokering.

Elk implementerar en liten delmängd av Ecmascript 6-specifikationen, men tillräcklig för att skapa fungerande skript. I synnerhet stöder den en grundläggande uppsättning operatorer och typer, men stöder inte arrayer, prototyper, detta, nya och ta bort uttryck. Det föreslås att använda let istället för var och const, och medan istället för do, switch och for. Inget standardbibliotek tillhandahålls, dvs. det finns inga sådana Date-, Regexp-, Function-, String- och Number-objekt.

Källa: opennet.ru

Lägg en kommentar