Lua 5.4 پروگرامنگ زبان کی ریلیز

پانچ سال کی ترقی کے بعد دستیاب رہائی لوا 5.4، ایک تیز اور کمپیکٹ اسکرپٹنگ پروگرامنگ زبان جو بڑے پیمانے پر ایمبیڈڈ لینگویج کے طور پر استعمال ہوتی ہے (مثال کے طور پر کنفیگریشن کی وضاحت یا ایکسٹینشن لکھنے کے لیے)۔ Lua انٹرپریٹر کوڈ C اور میں لکھا گیا ہے۔ نے بانٹا MIT لائسنس کے تحت.

Lua ایک سادہ طریقہ کار کے نحو کو جوڑتا ہے جس میں طاقتور اعداد و شمار کی وضاحت کی صلاحیتوں کو شامل کیا گیا ہے جس میں زبان کی ہم آہنگی اور قابل توسیع سیمنٹکس کے استعمال کے ذریعے۔ Lua متحرک ٹائپنگ کا استعمال کرتا ہے، زبان کی تعمیرات کو بائیک کوڈ میں تبدیل کرتا ہے جو خودکار کوڑا کرکٹ جمع کرنے والی رجسٹر پر مبنی ورچوئل مشین کے اوپر چلتی ہے۔ مترجم کو خود ایک لائبریری کے طور پر ڈیزائن کیا گیا ہے جسے C اور C++ زبانوں کے پروجیکٹس میں آسانی سے ضم کیا جا سکتا ہے۔

اہم بدعات:

  • کوڑا اٹھانے والے کے آپریشن کا ایک نیا طریقہ نافذ کیا گیا ہے -نسل پرستی"، جس نے پہلے سے دستیاب انکریمنٹل کوڑا کرکٹ اکٹھا کرنے کے موڈ کی تکمیل کی۔ نئے موڈ میں ایک مختصر کرال کو زیادہ کثرت سے چلانا شامل ہے، صرف حال ہی میں تخلیق کردہ اشیاء کا احاطہ کرتا ہے۔ تمام اشیاء کا مکمل ٹراورسل صرف اس صورت میں انجام دیا جاتا ہے جب، مختصر ٹراورسل کے بعد، مطلوبہ میموری کی کھپت کو حاصل کرنا ممکن نہ ہو۔ یہ نقطہ نظر آپ کو اعلی کارکردگی حاصل کرنے اور یادداشت کی کھپت کو کم کرنے کی اجازت دیتا ہے جب ایک بڑی تعداد میں اشیاء کو ذخیرہ کرتے ہیں جو مختصر وقت کے لئے رہتے ہیں۔
  • "const" وصف کے ساتھ متعین مستقل متغیرات کی وضاحت کرنے کی صلاحیت شامل کی گئی۔ ایسے متغیرات کو صرف ایک بار تفویض کیا جا سکتا ہے اور، ایک بار شروع ہونے کے بعد، تبدیل نہیں کیا جا سکتا۔
  • متغیر کے لیے سپورٹ شامل کر دی گئی "بند ہونا"، جو "close" وصف کا استعمال کرتے ہوئے تفویض کیے گئے ہیں اور مستقل مقامی متغیرات سے مشابہت رکھتے ہیں (const انتساب کے ساتھ)، ان سے اس لحاظ سے مختلف ہے کہ جب بھی یہ دائرہ چھوڑتا ہے تو قدر بند ہوتی ہے ("__close" طریقہ کہا جاتا ہے)، مثال کے طور پر، بلاک کی عام تکمیل کے بعد، خرابی ہونے پر break/goto/return یا exit کا استعمال کرتے ہوئے منتقلی کریں۔
  • قسم"Userdata"، جو Lua متغیرات میں کسی بھی C ڈیٹا کو ذخیرہ کرنے کی صلاحیت فراہم کرتا ہے (میموری میں ڈیٹا کے ایک بلاک کی نمائندگی کرتا ہے یا C پوائنٹر پر مشتمل ہے)، اب کئی قدروں پر مشتمل ہو سکتا ہے (کئی میٹاٹیبلز ہیں)۔
  • pseudorandom نمبر بنانے کے فنکشن کا ایک نیا نفاذ پیش کیا گیا ہے - math.random۔
  • انتباہات کا ایک نظام شامل کیا گیا ہے جس کا تعین اظہار کے ذریعے کیا جاتا ہے۔ خبردار اور، غلطیوں کے برعکس، پروگرام کے مزید عمل کو متاثر نہیں کرتے۔
  • فنکشن آرگیومینٹس اور ریٹرن ویلیوز کے بارے میں ڈیبگنگ معلومات شامل کی گئی۔
  • لوپس میں عددی اعداد شمار کرنے کے لیے ایک نیا سیمنٹکس تجویز کیا گیا ہے۔لیے" تکرار کی تعداد کا حساب لوپ شروع ہونے سے پہلے کیا جاتا ہے، جو متغیر اوور فلو اور لوپنگ سے بچتا ہے۔ اگر ابتدائی قدر محدود قدر سے زیادہ ہے تو، ایک غلطی ظاہر ہوتی ہے۔
  • فنکشن میں'string.gmatch' نے ایک نیا اختیاری دلیل 'init' شامل کیا، جو اس بات کا تعین کرتا ہے کہ تلاش کو کس پوزیشن سے شروع کرنا ہے (بطور ڈیفالٹ، 1 حرف سے)۔
  • نئی خصوصیات شامل کی گئیlua_resetthread' (تھریڈ کو ری سیٹ کرتا ہے، پورے کال اسٹیک کو صاف کرتا ہے اور تمام "بند ہونے والے" متغیرات کو بند کر دیتا ہے) اور 'coroutine.close' (کوروٹین اور تمام متعلقہ "بند ہونے والے" متغیرات کو بند کرتا ہے)۔
  • سٹرنگز کو نمبرز میں تبدیل کرنے کے فنکشنز کو "سٹرنگ" لائبریری میں منتقل کر دیا گیا ہے۔
  • اگر میموری بلاک کا سائز کم ہو جائے تو میموری ایلوکیشن فنکشن کی کالز ناکام ہو سکتی ہیں۔
  • فنکشن میں'string.format' نئے فارمیٹ اسپیفائر '%p' کے لیے سپورٹ شامل کیا (پوائنٹر lua_topointer کے ذریعے واپس کیا گیا)۔
  • utf8 لائبریری مدد فراہم کرتی ہے۔ کریکٹر کوڈز 2^31 تک کے نمبروں کے ساتھ۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں