наскоро беше обявено пускането на първата версия независимо от езика за програмиране Луау, който продължава с развитието на Lua и също е съвместим с предишни версии на Lua 5.1.
Езикът на Луау е предназначен предимно за вграждане на скриптови машини в приложения и има за цел да постигне висока производителност и ниска консумация на ресурси. Кодът на проекта е написан на 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 позволява статично писане, ако е необходимо, като посочва информация за типа чрез специални пояснения.
- В вградени типове „Всяко“, „нула“, „логично“, „число“, „низ“ и „нишка“. В същото време се запазва и възможността за използване на динамично въвеждане без изрично дефиниране на типа на променливите и функциите.
- Поддръжка за литерални низове (както в Lua 5.3)
- Поддръжка на израза "продължи", в допълнение към съществуващата ключова дума "break", за да преминете към нова итерация на цикъла.
- Поддръжка за съставни оператори за присвояване
- Подкрепа за използването на условни блокове "Ако-то-друго" под формата на изрази, които връщат стойността, изчислена по време на изпълнението на блока. Можете да посочите произволен брой изрази elseif в блок.
- Наличието на режим пясъчна кутия което ви позволява да изпълнявате ненадежден код. Тази функция може да се използва за организиране на вашия собствен код и код, написан от друг разработчик, например библиотеки на трети страни, които не могат да бъдат гарантирани, за да работят един до друг.
- Премахнато е ограничение на стандартната библиотека, от която функции, които потенциално биха могли да създадат проблеми със сигурността. Например, библиотеки "io" (достъп до файлове и стартиращи процеси), "пакет" (достъп до файлове и зареждане на модули), "os" (функции за достъп до файлове и промяна на променливите на средата са премахнати), "Debug" (несигурни обработка на паметта), "dofile" и "loadfile" (достъп до файловата система).
- Осигурете инструменти за статичен анализ на кода, откриване на грешки (Linter) и валидиране на използването на типове.
- анализатор, интерпретатор на байткод и високопроизводителен собствен компилатор.
- Luau все още не поддържа JIT компилация, но се твърди, че интерпретаторът на Luau е доста сравним по производителност с LuaJIT в някои ситуации.
Накрая ако се интересувате да научите повече за това, можете да проверите подробностите В следващия линк.