Luau, варіант мови Lua для перевірки типів стає відкритим вихідним кодом

Останнім часом було оголошено про випуск першої версії незалежно від мови програмування Луау, який продовжує розробку Lua і також сумісний з попередніми версіями Lua 5.1.

Мова луау є призначений в першу чергу для вбудовування сценаріїв в додатках і спрямований на досягнення високої продуктивності та низького споживання ресурсів. Код проекту написаний на C++ і відкритий за ліцензією MIT.

Luau розширює Lua за допомогою можливостей перевірки типів і деяких збірок нова синтаксика, як-от рядкові літерали. Мова сумісна з попередніми версіями Lua 5.1 і частково з новішими версіями. API Lua Runtime підтримується, дозволяє використовувати Luau з уже існуючими кодами та посиланнями.

На сьогодні Luau більше не є невід’ємною частиною платформи Roblox; є незалежною мовою з відкритим вихідним кодом.

Середовище виконання мови базується на значно переробленому коді середовища виконання Lua 5.1, але інтерпретатор був повністю переписаний. Розробка включала деякі нові методи оптимізації, які дозволили досягти більш високої продуктивності порівняно з Lua.

Коли Roblox був створений 15 років тому, ми обрали Lua як мову програмування. Lua була маленькою, швидкою, легкою для інтеграції та навчання, і вона відкрила величезні можливості для наших розробників.

Велика частина Roblox була побудована на Lua, включаючи сотні тисяч рядків внутрішньо розробленого коду, який донині працює в додатку Roblox і Roblox Studio, а також мільйони можливостей, створених розробниками. Для багатьох з них це була перша мова програмування, яку вони вивчили.

Проект розроблений Roblox і використовується в коді ігрової платформи та користувацьких додатках від цієї компанії, включаючи видавця Roblox Studio. Спочатку Luau розроблявся за закритими дверима, але в підсумку його вирішили перевести в категорію відкритих проектів для подальшого спільного розвитку за участю спільноти.

Основні можливості:

  • Система послідовного типу, яка займає проміжне положення між динамічним і статичним письмом. Luau дозволяє статичне запис за потреби, вказуючи інформацію про тип за допомогою спеціальних анотацій.
  • The вбудовані типи «Будь-який», «ніль», «логічний», «число», «рядок» і «потік». При цьому також зберігається можливість використання динамічної типізації без явного визначення типу змінних і функцій.
  • Підтримка літерних рядків (як у Lua 5.3)
  • Підтримка виразу "continue", на додаток до існуючого ключового слова "break", для переходу до нової ітерації циклу.
  • Підтримка складених операторів присвоєння
  • Підтримка використання умовні блоки «Якщо-то-Інше» у вигляді виразів, які повертають значення, обчислене під час виконання блоку. У блоці можна вказати довільну кількість операторів elseif.
  • Наявність режиму пісочниці що дозволяє запускати ненадійний код. Цю функцію можна використовувати для впорядкування вашого власного коду та коду, написаного іншим розробником, наприклад, бібліотек сторонніх розробників, які не можуть бути гарантовані, щоб працювати паралельно.
  • Обмеження стандартної бібліотеки, з якої було видалено функції, які потенційно можуть створити проблеми з безпекою. Наприклад, бібліотеки «io» (доступ до файлів і процесів запуску), «package» (доступ до файлів і завантаження модулів), «os» (вилучено функції доступу до файлів і зміни змінних середовища), «Debug» (небезпечні). обробка пам’яті), «dofile» і «loadfile» (доступ до файлової системи).
  • Надання інструментів для статичного аналізу коду, виявлення помилок (Linter) та перевірки використання типів.
  • аналізатор, інтерпретатор байт-коду і високопродуктивний власний компілятор.
  • Luau поки не підтримує компіляцію JIT, але стверджується, що інтерпретатор Luau цілком порівнянний за продуктивністю з LuaJIT в деяких ситуаціях.

В кінці кінців якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.