Luau، یک نوع بررسی نوع زبان Lua به منبع باز تبدیل می شود

به تازگی انتشار نسخه اول اعلام شد مستقل از زبان برنامه نویسی لوآوکه با توسعه Lua ادامه می یابد و با نسخه های قبلی Lua 5.1 نیز سازگار است.

زبان Luau است در درجه اول برای جاسازی موتورهای اسکریپت طراحی شده است در برنامه های کاربردی و هدف دستیابی به عملکرد بالا و مصرف کم منابع است. کد پروژه به زبان C ++ نوشته شده است و تحت مجوز MIT باز است.

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 با مشخص کردن اطلاعات نوع از طریق حاشیه نویسی های خاص، امکان نوشتن استاتیک را در صورت نیاز فراهم می کند.
  • را انواع داخلی "هر"، "nil"، "boolean"، "number"، "string" و "thread". در عین حال، امکان استفاده از تایپ پویا بدون تعریف صریح نوع متغیرها و توابع نیز حفظ می شود.
  • پشتیبانی از رشته های تحت اللفظی (مانند Lua 5.3)
  • پشتیبانی از عبارت "ادامه"، علاوه بر کلمه کلیدی موجود "شکستن"، برای پرش به یک تکرار جدید از حلقه.
  • پشتیبانی از عملگرهای انتساب ترکیبی
  • پشتیبانی برای استفاده از بلوک های شرطی "If-then-else" به شکل عباراتی که مقدار محاسبه شده در طول اجرای بلوک را برمی گرداند. شما می توانید تعداد دلخواه دیگری از عبارات elseif را در یک بلوک مشخص کنید.
  • وجود حالت sandbox که به شما امکان می دهد کدهای نامعتبر را اجرا کنید. از این تابع می توان برای سازماندهی کد و کد نوشته شده توسط توسعه دهنده دیگری استفاده کرد، به عنوان مثال کتابخانه های شخص ثالث که نمی توان آنها را تضمین کرد، تا در کنار هم اجرا شوند.
  • محدودیت کتابخانه استاندارد که عملکردهایی که به طور بالقوه می توانند مشکلات امنیتی ایجاد کنند حذف شده اند. به عنوان مثال، کتابخانه های "io" (دسترسی به فایل ها و فرآیندهای راه اندازی)، "بسته" (دسترسی به فایل ها و بارگذاری ماژول ها)، "os" (عملکردهای دسترسی به فایل ها و تغییر متغیرهای محیط حذف شده اند)، "اشکال زدایی" (ناامن) مدیریت حافظه)، "dofile" و "loadfile" (دسترسی به سیستم فایل).
  • ابزارهایی برای تجزیه و تحلیل کد ایستا، تشخیص خطا (Linter) و اعتبارسنجی استفاده از انواع فراهم کنید.
  • تحلیلگر، مفسر بایت کد و کامپایلر اختصاصی با کارایی بالا
  • Luau هنوز از کامپایل JIT پشتیبانی نمی کند، اما استدلال می شود که مفسر Luau از نظر عملکرد با LuaJIT در برخی شرایط کاملاً قابل مقایسه است.

سرانجام اگر شما علاقه مند به دانستن بیشتر در مورد آن هستید، می توانید جزئیات را بررسی کنید در لینک زیر.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.