• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

компактный JavaScript-движок для микроконтроллеров

nikolz

Well-known member
Новый выпуск 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).

Основным назначением является создание прошивок для микроконтроллеров на языке JavaScript, выполняющих различные задачи автоматизации.
Движок также подходит для встраивания обработчиков на языке JavaScript в приложения на C/C++.
Для использования движка в своём коде достаточно поместить в дерево исходных текстов файл elk.c, подключить заголовочный файл elk.h и использовать вызов js_eval.
Допускается вызов из JavaScript-сценариев функций, определённых в коде на C/C++, и наоборот.
JavaScript-код выполняется в защищённом и изолированном от основного кода окружении с использованием интерпретатора,
не генерирующего байткод и не использующего динамическое выделение памяти.
Реализовано небольшое, но достаточное для создания рабочих сценариев, подмножество спецификации Ecmascript 6.
В частности, поддерживается базовый набор операторов и типов, но нет поддержки массивов, прототипов, выражений this, new и delete.
Вместо var и const предлагается использовать let, а вместо do, switch и for - while.
Не предоставляется стандартная библиотека, т.е. нет таких объектов Date, Regexp, Function, String и Number.
 
Сверху Снизу