Luau, вариант языка Lua с проверкой типов, становится открытым исходным кодом

Недавно анонсирован выпуск первой версии не зависит от языка программирования Luau, который продолжает развитие Lua и также совместим с предыдущими версиями Lua 5.1.

Язык луау разработан в первую очередь для встраивания скриптовых движков в приложениях и направлен на достижение высокой производительности и низкого потребления ресурсов. Код проекта написан на C ++ и открыт под лицензией MIT.

Luau расширяет Lua возможностями проверки типов и некоторыми сборками новая синтаксика, такая как строковые литералы. Язык совместим с предыдущими версиями Lua 5.1 и частично с более новыми версиями.. Поддерживается Lua Runtime API, позволяя использовать Luau с уже существующими кодами и ссылками.

На сегодняшний день Luau больше не является неотъемлемой частью платформы Roblox; это независимый язык с открытым исходным кодом.

Среда выполнения языка основана на сильно переработанном коде среды выполнения Lua 5.1, но интерпретатор был полностью переписан. При разработке были задействованы некоторые новые методы оптимизации, которые позволили добиться более высокой производительности по сравнению с Lua.

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

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

Проект был разработан Roblox и используется в коде игровой платформы и пользовательских приложениях. от этой компании, включая издателя Roblox Studio. Изначально Luau разрабатывался в закрытом режиме, но в итоге было решено перевести его в разряд открытых проектов для дальнейшей совместной разработки с участием сообщества.

Особенности:

  • Система последовательных типов, занимающая промежуточное положение между динамической и статической записью. Luau позволяет статическое письмо по мере необходимости, указывая информацию о типе с помощью специальных аннотаций.
  • В встроенные типы «Любой», «ноль», «логическое», «число», «строка» и «поток». При этом сохраняется возможность использования динамической типизации без явного определения типа переменных и функций.
  • Поддержка буквальных строк (как в Lua 5.3)
  • Поддержка выражения «continue» в дополнение к существующему ключевому слову «break» для перехода к новой итерации цикла.
  • Поддержка составных операторов присваивания
  • Поддержка использования условные блоки «If-then-else» в виде выражений, возвращающих значение, вычисленное во время выполнения блока. Вы можете указать произвольное количество операторов elseif в блоке.
  • Наличие режима песочницы что позволяет запускать ненадежный код. Эта функция может использоваться для организации вашего собственного кода и кода, написанного другим разработчиком, например сторонних библиотек, работа которых не может быть гарантирована, для совместной работы.
  • Ограничение стандартной библиотеки, из которой были удалены функции, которые потенциально могли создать проблемы безопасности. Например, библиотеки «io» (доступ к файлам и процессам запуска), «package» (доступ к файлам и загрузке модулей), «os» (функции для доступа к файлам и изменения переменных среды были удалены), «Debug» (небезопасный обработка памяти), dofile и loadfile (доступ к файловой системе).
  • Предоставьте инструменты для статического анализа кода, обнаружения ошибок (ЛИНТЕР) и проверки использования типов.
  • Анализатор, интерпретатор байт-кода и высокопроизводительный проприетарный компилятор.
  • Luau пока не поддерживает JIT-компиляцию, но утверждается, что интерпретатор Luau в некоторых ситуациях вполне сопоставим по производительности с LuaJIT.

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.


Будьте первым, чтобы комментировать

Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.