Luau, une variante de vérification de type du langage Lua devient open source

Récemment la sortie de la première version a été annoncée indépendant du langage de programmation Luau, qui se poursuit avec le développement de Lua et est également compatible avec les versions précédentes de Lua 5.1.

La langue Luau est conçu principalement pour l'intégration de moteurs de script dans les applications et vise à atteindre des performances élevées et une faible consommation de ressources. Le code du projet est écrit en C++ et est ouvert sous licence MIT.

Luau étend Lua avec des capacités de vérification de type et certaines versions de nouvelles syntaxes comme les littéraux de chaîne. La langue est compatible avec les versions précédentes de Lua 5.1 et partiellement avec les versions plus récentes. L'API Lua Runtime est prise en charge, permettant à Luau d'être utilisé avec des codes et des liens préexistants.

À partir d'aujourd'hui, Luau ne fait plus partie intégrante de la plate-forme Roblox ; est un langage open source indépendant.

L'environnement d'exécution du langage est basé sur le code d'exécution Lua 5.1 fortement révisé, mais l'interpréteur a été complètement réécrit. Le développement a impliqué de nouvelles techniques d'optimisation qui ont permis d'atteindre des performances supérieures par rapport à Lua.

Lorsque Roblox a été créé il y a 15 ans, nous avons choisi Lua comme langage de programmation. Lua était petit, rapide, facile à intégrer et à apprendre, et il a ouvert d'énormes possibilités pour nos développeurs.

Une grande partie de Roblox a été construite sur Lua, y compris des centaines de milliers de lignes de code développé en interne qui alimentent l'application Roblox et Roblox Studio à ce jour, et les millions d'expériences que les développeurs ont créées. Pour beaucoup d'entre eux, c'était le premier langage de programmation qu'ils apprenaient.

Le projet a été développé par Roblox et est utilisé dans le code de la plate-forme de jeu et les applications personnalisées de cette société, y compris l'éditeur de Roblox Studio. Initialement, Luau a été développé à huis clos, mais il a finalement été décidé de le transférer dans la catégorie des projets ouverts pour un développement conjoint ultérieur avec la participation de la communauté.

Caractéristiques:

  • Un système de type séquentiel, qui occupe une position intermédiaire entre l'écriture dynamique et statique. Luau permet l'écriture statique selon les besoins en spécifiant les informations de type via des annotations spéciales.
  • Les types intégrés "Any", "nil", "boolean", "number", "string" et "thread". Dans le même temps, la possibilité d'utiliser le typage dynamique sans définir explicitement le type de variables et de fonctions est également préservée.
  • Prise en charge des chaînes littérales (comme dans Lua 5.3)
  • Prise en charge de l'expression "continue", en plus du mot-clé existant "break", pour sauter à une nouvelle itération de la boucle.
  • Prise en charge des opérateurs d'affectation composés
  • Prise en charge de l'utilisation de blocs conditionnels "If-then-else" sous forme d'expressions qui renvoient la valeur calculée lors de l'exécution du bloc. Vous pouvez spécifier un nombre arbitraire d'instructions elseif dans un bloc.
  • La présence d'un mode bac à sable qui vous permet d'exécuter du code non fiable. Cette fonction peut être utilisée pour organiser votre propre code et le code écrit par un autre développeur, par exemple des bibliothèques tierces qui ne peuvent pas être garanties, pour qu'elles s'exécutent côte à côte.
  • Une limitation de la bibliothèque standard dont les fonctions pouvant potentiellement créer des problèmes de sécurité ont été supprimées. Par exemple, les bibliothèques "io" (accès aux fichiers et processus de démarrage), "package" (accès aux fichiers et modules de chargement), "os" (les fonctions d'accès aux fichiers et de modification des variables d'environnement ont été supprimées), "Debug" (non sécurisé gestion de la mémoire), "dofile" et "loadfile" (accès au système de fichiers).
  • Fournir des outils d'analyse de code statique, de détection d'erreurs (Linter) et de validation de l'utilisation des types.
  • Analyseur, interpréteur de bytecode et compilateur propriétaire hautes performances.
  • Luau ne prend pas encore en charge la compilation JIT, mais il est avancé que l'interpréteur Luau est assez comparable en termes de performances à LuaJIT dans certaines situations.

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.