Праект 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

Дадаць каментар