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

25 сентября 2021 года

Доступен новый выпуск 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.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Проект elk развивает компактный JavaScript-движок для микроконтроллеров», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.