Проект elk розвиває компактний JavaScript-движок для мікроконтролерів

Доступний новий випуск JavaScript-движка elk 2.0.9, націленого на використання в системах з обмеженими ресурсами, такими як мікроконтролери, включаючи плати ESP32 та Arduino Nano з 2 КБ ОЗП та 30КБ Flash. Для роботи віртуальної машини достатньо 100 байт пам'яті і 20 КБ місця на накопичувачі. Код проекту написаний мовою Сі та розповсюджується під ліцензією GPLv2. Для складання проекту достатньо Сі-компілятора – додаткові залежності не використовуються. Проект розвивається розробниками операційної системи для IoT-пристроїв Mongoose OS, JavaScript-движка mJS і вбудованого web-сервера Mongoose (застосовується в продуктах таких компаній, як Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung та Qualcomm).

Основним призначенням Elk є створення прошивок для мікроконтролерів мовою JavaScript, що виконують різні завдання автоматизації. Двигун також підходить для вбудовування обробників мовою JavaScript у додатки C/C++. Для використання движка у своєму коді достатньо помістити в дерево вихідних текстів файл elk.c, підключити заголовний файл elk.h і використати виклик js_eval. Дозволяється виклик із JavaScript-сценаріїв функцій, визначених у коді на C/C++, і навпаки. JavaScript-код виконується в захищеному та ізольованому від основного коду оточенні з використанням інтерпретатора, що не генерує байткод і не використовує динамічне виділення пам'яті.

В Elk реалізовано невелике, але достатнє для створення робочих сценаріїв, підмножина специфікації Ecmascript 6. Зокрема, підтримується базовий набір операторів та типів, але немає підтримки масивів, прототипів, виразів this, new та delete. Замість var та const пропонується використовувати let, а замість do, switch та for — while. Не надається стандартна бібліотека, тобто. немає таких об'єктів Date, Regexp, Function, String та Number.

Джерело: opennet.ru

Додати коментар або відгук