Nim ပရိုဂရမ်းမင်းဘာသာစကား 0.20 ၏ဗားရှင်းအသစ်

နေရာယူခဲ့သည်။ စနစ် ပရိုဂရမ်းမင်း ဘာသာစကား ထုတ်ဝေမှု Nim ၁.၂. ဘာသာစကားသည် static typing ကိုအသုံးပြုပြီး Pascal၊ C++၊ Python နှင့် Lisp တို့ဖြင့် ဖန်တီးထားသည်။ Nim အရင်းအမြစ်ကုဒ်ကို C၊ C++ သို့မဟုတ် JavaScript ကိုယ်စားပြုမှုအဖြစ် စုစည်းထားသည်။ နောက်ပိုင်းတွင် ရရှိလာသော C/C++ ကုဒ်ကို သင်အသုံးပြုသည့်ကုန်ကျစရိတ်များကို ထည့်မတွက်ပါက ရရှိနိုင်သော compiler (clang, gcc, icc, Visual C++) ကို အသုံးပြု၍ executable file တစ်ခုအဖြစ် စုစည်းထားပါသည်။ အမှိုက်သိမ်းသူ။ Python နှင့်ဆင်တူသည်၊ Nim သည် အင်တင်းကို ပိတ်ဆို့ကန့်သတ်ချက်များအဖြစ် အသုံးပြုသည်။ domain-specific languages ​​(DSL) များဖန်တီးရန်အတွက် Metaprogramming ကိရိယာများနှင့် စွမ်းရည်များကို ပံ့ပိုးထားပါသည်။ ပရောဂျက်ကုဒ် ထောက်ပံ့ MIT လိုင်စင်အောက်တွင်။

Nim 0.20 ထုတ်ဝေမှုအား ပထမဆုံးတည်ငြိမ်သော 1.0 ထုတ်ဝေမှုအတွက် ကိုယ်စားလှယ်လောင်းအဖြစ် ယူဆနိုင်သည်၊ ဘာသာစကား၏အခြေအနေကိုလုပ်ဆောင်မည့် ပထမဆုံးတည်ငြိမ်သောဌာနခွဲကိုဖွဲ့စည်းရန် လိုအပ်သော အပြန်အလှန်လုပ်ဆောင်နိုင်မှု-ချိုးဖျက်သည့်ပြောင်းလဲမှုများစွာကို ပေါင်းစပ်ထည့်သွင်းထားသည်။ ဗားရှင်း 1.0 သည် ဘာသာစကား၏ တည်ငြိမ်သောအစိတ်အပိုင်းတွင် နောက်ပြန်လိုက်ဖက်မှုကို ထိန်းသိမ်းရန် အာမခံမည့် တည်ငြိမ်သော၊ ရေရှည်ပံ့ပိုးမှုထုတ်ဝေမှုအဖြစ် အသိအမှတ်ပြုခံရပါသည်။ သီးခြားစီတွင်၊ compiler တွင် နောက်ကြောင်းပြန်လိုက်ဖက်မှုကို ချိုးဖောက်နိုင်သည့် အင်္ဂါရပ်အသစ်များကို တီထွင်ဖန်တီးနိုင်စေမည့် စမ်းသပ်မုဒ်တစ်ခုလည်း ရှိမည်ဖြစ်သည်။

Nim 0.20 တွင် အဆိုပြုထားသော အပြောင်းအလဲများထဲတွင်-

  • "Not" သည် ယခုအခါ အမြဲတမ်း unary operator ဖြစ်သည်၊ ဆိုလိုသည်မှာ၊ “assert (not a)” ကဲ့သို့သော အသုံးအနှုန်းများကို ယခု ခွင့်မပြုဘဲ “asert not a” ကိုသာ ခွင့်ပြုထားသည်။
  • စုစည်းမှုအဆင့်တွင် ကိန်းပြည့်နှင့် ကိန်းစစ်များ ပြောင်းလဲခြင်းအတွက် တင်းကျပ်သော စစ်ဆေးမှုများကို ဖွင့်ထားသည်။ "const b = uint16(-1)" ဟူသော စကားရပ်သည် ယခု အမှားဖြစ်သွားပေလိမ့်မည်၊ အကြောင်းမှာ -1 သည် လက်မှတ်မထိုးထားသော ကိန်းပြည့်အမျိုးအစားသို့ မပြောင်းနိုင်သောကြောင့်၊
  • ကိန်းသေများနှင့် ကွင်းဆက်ကိန်းရှင်များအတွက် tuples များကို ထုပ်ပိုးခြင်းကို ပံ့ပိုးပေးထားသည်။
    ဥပမာအားဖြင့်၊ ယခုသင်သည် 'const(d, e) = (7, "eight")" နှင့် "for (x, y) f" ကဲ့သို့ assignments များကို အသုံးပြုနိုင်သည်။

  • ဟက်ရှ်များနှင့် ဇယားများ၏ ပုံသေအစပြုခြင်းကို ပေးထားသည်။ ဥပမာအားဖြင့်၊ “var s: HashSet[int]” ကို ကြေညာပြီးနောက် သင်သည် ယခင်က error ဖြစ်ပေါ်စေသည့် “s.incl(5)” ကို ချက်ချင်းလုပ်ဆောင်နိုင်သည်၊
  • "case" အော်ပရေတာနှင့် array အညွှန်းနှင့်ဆက်စပ်သော ပြဿနာများအတွက် ပိုမိုကောင်းမွန်သော အမှားအယွင်းအချက်အလက်များ၊
  • ထပ်ခါထပ်ခါလုပ်နေချိန်မှာ ဇယားအရှည်ကို ပြောင်းလဲခြင်းကို တားမြစ်ထားပါတယ်။

source: opennet.ru

မှတ်ချက် Add