لوآءَ لاءِ اوپن سورس، لوا ٻوليءَ جو هڪ قسم جي چڪاس واري قسم

لوا پروگرامنگ ٻولي جي پهرين اسٽينڊل رليز جي اوپن سورس ۽ اشاعت جو اعلان ڪيو، لوا ٻولي جي ترقي کي جاري رکڻ ۽ لوا 5.1 سان پسمانده مطابقت. Luau بنيادي طور تي اسڪرپٽنگ انجڻ کي ايپليڪيشنن ۾ شامل ڪرڻ لاءِ ٺهيل آهي ۽ مقصد اعليٰ ڪارڪردگي ۽ گهٽ وسيلن جي استعمال کي حاصل ڪرڻ آهي. پروجيڪٽ ڪوڊ C++ ۾ لکيل آهي ۽ MIT لائسنس تحت کليل آهي.

Luau Lua کي ٽائيپ چيڪنگ جي صلاحيتن سان وڌائي ٿو ۽ ڪجھ نئين نحوي تعميرات جهڙوڪ اسٽرنگ لٽرلز. ٻولي پسمانده لوا 5.1 سان مطابقت رکي ٿي ۽ جزوي طور نئين ورزن سان. Lua Runtime API جي مدد ڪئي وئي آهي، توهان کي موجوده ڪوڊ ۽ پابندن سان Lua استعمال ڪرڻ جي اجازت ڏئي ٿي. ٻوليءَ جو رن ٽائم تمام گھڻو ڪم ٿيل لوا رن ٽائم 5.1 ڪوڊ تي ٻڌل آھي، پر مترجم مڪمل طور تي وري لکيو ويو آھي. ترقي جي دوران، Lua جي مقابلي ۾ اعلي ڪارڪردگي حاصل ڪرڻ لاء ڪجھ نئين اصلاح جي ٽيڪنالاجي استعمال ڪيا ويا.

پروجيڪٽ روبلوڪس پاران تيار ڪيو ويو آهي ۽ هن ڪمپني جي گیمنگ پليٽ فارم، رانديون، ۽ صارف ايپليڪيشنن جي ڪوڊ ۾ استعمال ڪيو ويو آهي، بشمول روبلوڪس اسٽوڊيو ايڊيٽر. شروعات ۾، Luau بند دروازن جي پويان ترقي ڪئي وئي، پر آخر ۾ ان کي ڪميونٽي جي شموليت سان وڌيڪ گڏيل ترقي لاء کليل منصوبن جي درجي ۾ منتقل ڪرڻ جو فيصلو ڪيو ويو.

مکيه خاصيتون

  • تدريجي ٽائپنگ، متحرڪ ۽ جامد ٽائپنگ جي وچ ۾ وچولي پوزيشن تي قبضو ڪرڻ. Luau توهان کي اجازت ڏئي ٿو جامد ٽائپنگ استعمال ڪرڻ جي ضرورت مطابق خاص تشريح ذريعي قسم جي معلومات بيان ڪندي. ٺاهيل قسمون "ڪو به"، "نيل"، "بولين"، "نمبر"، "اسٽرنگ" ۽ "ٿريڊ" مهيا ڪيا ويا آهن. ساڳئي وقت، متحرڪ ٽائپنگ استعمال ڪرڻ جو امڪان واضح طور تي متغير ۽ افعال جي قسم کي بيان ڪرڻ کان سواء محفوظ آهي. فنڪشن foo (x: نمبر، y: string): boolean local k: string = y: rep (x) واپسي k == "a" آخر
  • اسٽرنگ لٽرلز لاءِ سپورٽ (جيئن ته Lua 5.3 ۾) جيئن ته "\0x**" (هيڪساڊيڪل نمبر)، "\u{**}" (يونيڪوڊ ڪردار) ۽ "\z" (ليڪ جي پڇاڙي)، گڏوگڏ انگن جي فارميٽنگ کي ڏسڻ جي صلاحيت (توهان 1 جي بدران 000_000_1000000 لکي سگهو ٿا)، هيڪساڊيڪل (0x...) ۽ بائنري نمبرز (0b......) لاءِ ليٽرلز.
  • "جاري" اظهار لاءِ سپورٽ، موجوده "بريڪ" لفظ کي پورو ڪندي، نئين لوپ جي ورهاڱي ڏانهن وڃڻ لاءِ.
  • مرڪب اسائنمينٽ آپريٽرز لاءِ سپورٽ (+=، -=، *=، /=، %=، ^=، ..=).
  • مشروط "جيڪڏهن-تو-ٻيو" بلاڪ جي استعمال لاءِ سپورٽ اظهار جي صورت ۾ جيڪي بلاڪ جي عمل دوران حساب ڪيل قدر واپس ڪن ٿا. توھان وضاحت ڪري سگھو ٿا ھڪ صوابديدي تعداد جو ھڪڙو بلاڪ ۾ elseif اظهار جو. local maxValue = جيڪڏھن a > b پوء a else b مقامي نشاني = جيڪڏھن x < 0 پوء -1 elseif x > 0 پوء 1 ٻيو 0
  • هڪ اڪيلائيشن موڊ (سينڊ باڪس) جي موجودگي، جيڪا توهان کي ناقابل اعتبار ڪوڊ هلائڻ جي اجازت ڏئي ٿي. هي خصوصيت لانچ کي ترتيب ڏيڻ لاءِ استعمال ڪري سگهجي ٿي توهان جي پنهنجي ڪوڊ ۽ ڪوڊ جي پاسي کان ٻئي ڊولپر طرفان لکيل آهي، مثال طور، ٽئين پارٽي لائبريريون جن جي حفاظت جي ضمانت نه ٿي سگهي.
  • معياري لائبريري جي هڪ حد جنهن مان فنڪشن جيڪي ممڪن طور تي حفاظتي مسئلا پيدا ڪري سگھن ٿا ختم ڪيا ويا آهن. مثال طور، لائبريريون “io” (فائلن تائين رسائي ۽ لانچ ڪرڻ واري عمل)، “پيڪيج” (فائلن تائين رسائي ۽ لوڊ ڪرڻ جا ماڊل)، “OS” (فائلن تائين رسائي ۽ ماحول جي تبديلين لاءِ ڪم)، “ڊيبگ” (ميموري سان غير محفوظ آپريشن) ، "ڊافيل" ۽ "لوڊ فائل" (FS رسائي).
  • جامد ڪوڊ جي تجزيي لاءِ اوزار مهيا ڪرڻ، غلطين جي نشاندهي ڪرڻ (لنٽر) ۽ قسمن جي صحيح استعمال کي جانچڻ.
  • پنهنجو اعليٰ ڪارڪردگي وارو parser، bytecode مترجم ۽ مرتب ڪندڙ. Luau اڃا تائين JIT جي تاليف جي حمايت نه ڪندو آهي، پر اها دعوي ڪئي وئي آهي ته Luau مترجم ڪارڪردگي ۾ ڪجهه حالتن ۾ LuaJIT جي مقابلي ۾ ڪافي آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو