أصبح Luau ، وهو متغير للتحقق من النوع للغة Lua ، مفتوح المصدر

مؤخرا تم الإعلان عن إصدار النسخة الأولى مستقل عن لغة البرمجة لوا، والذي يستمر في تطوير Lua ويتوافق أيضًا مع الإصدارات السابقة من Lua 5.1.

لغة Luau هي مصممة بشكل أساسي لتضمين محركات البرامج النصية في التطبيقات ويهدف إلى تحقيق أداء عالٍ واستهلاك منخفض للموارد. رمز المشروع مكتوب بلغة C ++ وهو مفتوح بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.

توسع Luau Lua بإمكانيات فحص النوع وبعض البنيات قواعد جديدة مثل النصوص الحرفية. تتوافق اللغة مع الإصدارات السابقة من Lua 5.1 وجزئيًا مع الإصدارات الأحدث. يتم دعم Lua Runtime API ، السماح باستخدام Luau مع الرموز والروابط الموجودة مسبقًا.

اعتبارًا من اليوم ، لم تعد Luau جزءًا لا يتجزأ من منصة Roblox ؛ هي لغة مستقلة مفتوحة المصدر.

يعتمد وقت تشغيل اللغة على كود Lua 5.1 الذي تمت مراجعته بشكل كبير ، ولكن تمت إعادة كتابة المترجم الفوري بالكامل. تضمن التطوير بعض تقنيات التحسين الجديدة التي جعلت من الممكن تحقيق أداء أعلى مقارنة بـ Lua.

عندما تم إنشاء Roblox قبل 15 عامًا ، اخترنا Lua كلغة برمجة. كانت Lua صغيرة وسريعة وسهلة الدمج والتعلم ، وفتحت إمكانيات هائلة لمطورينا.

تم إنشاء الكثير من Roblox على Lua ، بما في ذلك مئات الآلاف من سطور التعليمات البرمجية المطورة داخليًا والتي تعمل على تشغيل تطبيق Roblox و Roblox Studio حتى يومنا هذا ، وملايين التجارب التي ابتكرها المطورون. بالنسبة للكثيرين منهم ، كانت هذه هي أول لغة برمجة تعلموها.

تم تطوير المشروع بواسطة Roblox ويستخدم في كود منصة اللعبة والتطبيقات المخصصة من هذه الشركة ، بما في ذلك ناشر Roblox Studio. في البداية ، تم تطوير Luau خلف الأبواب المغلقة ، ولكن في النهاية تقرر نقلها إلى فئة المشاريع المفتوحة لمزيد من التطوير المشترك بمشاركة المجتمع.

الميزات:

  • نظام من النوع المتسلسل ، يحتل موقعًا وسيطًا بين الكتابة الديناميكية والثابتة. يسمح Luau بالكتابة الثابتة حسب الحاجة عن طريق تحديد معلومات النوع من خلال التعليقات التوضيحية الخاصة.
  • ال أنواع مدمجة "أي" ، "لا شيء" ، "منطقي" ، "رقم" ، "سلسلة" و "موضوع". في الوقت نفسه ، يتم أيضًا الاحتفاظ بالقدرة على استخدام الكتابة الديناميكية دون تحديد نوع المتغيرات والوظائف بشكل صريح.
  • دعم السلاسل الحرفية (كما في Lua 5.3)
  • دعم للتعبير "متابعة" ، بالإضافة إلى الكلمة الأساسية الموجودة "كسر" ، للانتقال إلى تكرار جديد للحلقة.
  • دعم لمشغلي التخصيص المركب
  • دعم لاستخدام الكتل الشرطية "If-then-else" في شكل تعبيرات تُرجع القيمة المحسوبة أثناء تنفيذ الكتلة. يمكنك تحديد عدد عشوائي من عبارات elseif في كتلة.
  • وجود وضع الحماية مما يسمح لك بتشغيل تعليمات برمجية غير موثوق بها. يمكن استخدام هذه الوظيفة لتنظيم التعليمات البرمجية والتعليمات البرمجية الخاصة بك التي كتبها مطور آخر ، على سبيل المثال مكتبات الطرف الثالث التي لا يمكن ضمانها ، لتعمل جنبًا إلى جنب.
  • أحد قيود المكتبة القياسية التي تمت إزالة الوظائف التي من المحتمل أن تخلق مشاكل أمنية منها. على سبيل المثال ، المكتبات "io" (الوصول إلى الملفات وعمليات بدء التشغيل) ، "الحزمة" (الوصول إلى الملفات ووحدات التحميل) ، "نظام التشغيل" (تمت إزالة وظائف الوصول إلى الملفات وتغيير متغيرات البيئة) ، "تصحيح الأخطاء" (غير آمن معالجة الذاكرة) ، "ملف تعريف" و "ملف تحميل" (الوصول إلى نظام الملفات).
  • توفير أدوات لتحليل الكود الثابت واكتشاف الأخطاء (Linter) والتحقق من استخدام الأنواع.
  • محلل مترجم bytecode ومترجم الملكية عالي الأداء.
  • لا يدعم Luau تجميع JIT حتى الآن ، ولكن يُقال أن مترجم Luau يمكن مقارنته تمامًا في الأداء مع LuaJIT في بعض المواقف.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.