elk ပရောဂျက်သည် မိုက်ခရိုကွန်ထရိုလာများအတွက် ကျစ်လစ်သော JavaScript အင်ဂျင်ကို တီထွင်သည်။

ESP2.0.9 နှင့် 32KB RAM နှင့် 2KB Flash ပါသော 30KB RAM နှင့် 100KB Flash ရှိသော မိုက်ခရိုကွန်ထရိုလာများကဲ့သို့သော အရင်းအမြစ်-ကန့်သတ်ထားသော စနစ်များတွင် အသုံးပြုရန်အတွက် ရည်ရွယ်သည့် elk 20 JavaScript အင်ဂျင်၏ အသစ်ထွက်ရှိမှုကို ရရှိနိုင်သည်။ ပေးထားသည့် virtual machine ကိုလည်ပတ်ရန်အတွက် 2 bytes memory နှင့် storage space XNUMX KB သည် လုံလောက်ပါသည်။ ပရောဂျက်ကုဒ်ကို C ဘာသာစကားဖြင့် ရေးသားထားပြီး GPLvXNUMX လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ ပရောဂျက်ကိုတည်ဆောက်ရန်အတွက် C compiler သည် လုံလောက်သည် - နောက်ထပ်မှီခိုအားထားစရာများကို အသုံးမပြုပါ။ ဤပရောဂျက်ကို IoT စက်ပစ္စည်းများအတွက် Mongoose OS၊ mJS JavaScript အင်ဂျင်နှင့် embedded Mongoose ဝဘ်ဆာဗာ ( Siemens၊ Schneider Electric၊ Broadcom၊ Bosch၊ Google၊ Samsung နှင့် Qualcomm ကဲ့သို့သော ကုမ္ပဏီများမှ ထုတ်ကုန်များတွင် အသုံးပြုသည့် ထုတ်ကုန်များတွင် အသုံးပြုသည့် ပရောဂျက်ကို ဤပရောဂျက်ကို တီထွင်သူများမှ တီထွင်ထားခြင်း ဖြစ်သည်။ )

Elk ၏ အဓိကရည်ရွယ်ချက်မှာ အမျိုးမျိုးသော အလိုအလျောက်လုပ်ဆောင်ခြင်းလုပ်ငန်းဆောင်တာများကို လုပ်ဆောင်သည့် JavaScript ရှိ မိုက်ခရိုကွန်ထရိုလာများအတွက် firmware ဖန်တီးရန်ဖြစ်သည်။ အင်ဂျင်သည် C/C++ အပလီကေးရှင်းများထဲသို့ JavaScript ကိုင်တွယ်ကိရိယာများကို ထည့်သွင်းရန်အတွက်လည်း သင့်လျော်သည်။ သင့်ကုဒ်တွင် အင်ဂျင်ကိုအသုံးပြုရန်၊ အရင်းအမြစ်သစ်တွင် elk.c ဖိုင်ကို ထားကာ elk.h ခေါင်းစီးဖိုင်ကို ထည့်သွင်းပြီး js_eval ခေါ်ဆိုမှုကို အသုံးပြုပါ။ C/C++ ကုဒ်တွင် သတ်မှတ်ထားသော လုပ်ဆောင်ချက်များကို JavaScript scripts များနှင့် အပြန်အလှန်ခေါ်ဆိုရန် ခွင့်ပြုထားသည်။ JavaScript ကုဒ်ကို ပင်မကုဒ်မှ သီးခြားခွဲထုတ်ထားသော ကာကွယ်ထားသော ပတ်ဝန်းကျင်တွင် bytecode မထုတ်ပေးဘဲ တက်ကြွသောမှတ်ဉာဏ်ခွဲဝေမှုကို အသုံးမပြုသော စကားပြန်ကို အသုံးပြုထားသည်။

Elk သည် Ecmascript 6 သတ်မှတ်ချက်၏ သေးငယ်သော အမျိုးအစားခွဲတစ်ခုကို အကောင်အထည်ဖော်သည်၊ သို့သော် အလုပ်လုပ်သော scripts များဖန်တီးရန်အတွက် လုံလောက်ပါသည်။ အထူးသဖြင့်၊ ၎င်းသည် အခြေခံအော်ပရေတာများနှင့် အမျိုးအစားများကို ပံ့ပိုးပေးသော်လည်း arrays၊ ရှေ့ပြေးပုံစံများ၊ ဤ၊ အသစ်နှင့် စကားရပ်များကို ဖျက်ပစ်ခြင်းကို မပံ့ပိုးပါ။ var နှင့် const အစား let ကိုသုံးရန် အဆိုပြုထားပြီး do အစား switch နှင့် for ။ စံပြစာကြည့်တိုက်ကို ပေးထားခြင်းမရှိ၊ ဥပမာ၊ ထိုကဲ့သို့သော Date၊ Regexp၊ Function၊ String နှင့် Number object မရှိပါ။

source: opennet.ru

မှတ်ချက် Add