Elk loyihasi mikrokontrollerlar uchun ixcham JavaScript dvigatelini ishlab chiqadi

Elk 2.0.9 JavaScript dvigatelining yangi relizi mavjud boΚ»lib, u mikrokontrollerlar kabi resurslari cheklangan tizimlarda, jumladan ESP32 va 2KB RAM va 30KB Flashga ega Arduino Nano platalarida foydalanishga qaratilgan. Taqdim etilgan virtual mashinani ishlatish uchun 100 bayt xotira va 20 KB saqlash maydoni etarli. Loyiha kodi C tilida yozilgan va GPLv2 litsenziyasi ostida tarqatiladi. Loyihani yaratish uchun C kompilyatori etarli - qo'shimcha bog'liqliklar ishlatilmaydi. Loyiha Mongoose OS IoT qurilmalari uchun operatsion tizim, mJS JavaScript dvigateli va oΚ»rnatilgan Mongoose veb-serveri (Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung va Qualcomm kabi kompaniyalar mahsulotlarida qoΚ»llaniladi) ishlab chiquvchilari tomonidan ishlab chiqilmoqda. ).

Elkning asosiy maqsadi JavaScript-da turli xil avtomatlashtirish vazifalarini bajaradigan mikrokontrollerlar uchun proshivka yaratishdir. Dvigatel JavaScript ishlov beruvchilarini C/C++ ilovalariga joylashtirish uchun ham mos keladi. Dvigatelni kodingizda ishlatish uchun elk.c faylini manba daraxtiga joylashtiring, elk.h sarlavha faylini kiriting va js_eval chaqiruvidan foydalaning. C/C++ kodida aniqlangan funksiyalarni JavaScript skriptlaridan chaqirishga ruxsat beriladi va aksincha. JavaScript kodi asosiy koddan ajratilgan himoyalangan muhitda bayt kod yaratmaydigan va dinamik xotira ajratishdan foydalanmaydigan tarjimon yordamida bajariladi.

Elk Ecmascript 6 spetsifikatsiyasining kichik kichik to'plamini amalga oshiradi, lekin ishchi skriptlarni yaratish uchun etarli. Xususan, u operatorlar va turlarning asosiy to'plamini qo'llab-quvvatlaydi, lekin massivlarni, prototiplarni, bu, yangi va o'chirish ifodalarini qo'llab-quvvatlamaydi. Var va const o'rniga let, do o'rniga esa switch va for dan foydalanish taklif etiladi. Standart kutubxona taqdim etilmaydi, ya'ni. bunday Date, Regexp, Function, String va Number ob'ektlari mavjud emas.

Manba: opennet.ru

a Izoh qo'shish