Лоиҳаи elk як муҳаррики паймоне JavaScript-ро барои микроконтроллерҳо таҳия мекунад

Нашри нави муҳаррики JavaScript elk 2.0.9 дастрас аст, ки барои истифода дар системаҳои маҳдуди захираҳо ба монанди микроконтроллерҳо, аз ҷумла тахтаҳои ESP32 ва Arduino Nano бо 2 КБ RAM ва 30 КБ Flash нигаронида шудааст. Барои идора кардани мошини виртуалии пешниҳодшуда 100 байт хотира ва 20 КБ фазои нигоҳдорӣ кифоя аст. Рамзи лоиҳа бо забони C навишта шудааст ва таҳти иҷозатномаи GPLv2 паҳн карда мешавад. Барои сохтани лоиҳа як компилятори C кифоя аст - ягон вобастагии иловагӣ истифода намешавад. Лоиҳа аз ҷониби таҳиягарони системаи оператсионии дастгоҳҳои IoT Mongoose OS, муҳаррики mJS JavaScript ва веб-сервери дарунсохташудаи 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-ро амалӣ мекунад, аммо барои эҷоди скриптҳои корӣ кофӣ аст.Аз ҷумла, он маҷмӯи асосии операторҳо ва намудҳоро дастгирӣ мекунад, аммо массивҳо, прототипҳо ё ин, нав ва тозакунии ифодаҳоро дастгирӣ намекунад. Пешниҳод мешавад, ки ба ҷои var ва const let let ва ба ҷои do, switch ва for истифода шавад. Китобхонаи стандартӣ дода нашудааст, яъне. чунин объектҳои Date, Regexp, Function, String ва Number вуҷуд надоранд.

Манбаъ: opennet.ru

Илова Эзоҳ