Luau, een typecontrolevariant van de Lua-taal wordt open source

onlangs de release van de eerste versie werd aangekondigd onafhankelijk van programmeertaal Luau, die doorgaat met de ontwikkeling van Lua en ook compatibel is met eerdere versies van Lua 5.1.

De Luau-taal is voornamelijk ontworpen voor het insluiten van scriptengines in toepassingen en streeft naar hoge prestaties en een laag verbruik van hulpbronnen. De projectcode is geschreven in C++ en is open onder de MIT-licentie.

Luau breidt Lua uit met mogelijkheden voor typecontrole en enkele builds nieuwe syntactieken zoals letterlijke tekenreeksen. De taal is compatibel met eerdere versies van Lua 5.1 en gedeeltelijk met nieuwere versies. De Lua Runtime API wordt ondersteund, waardoor Luau kan worden gebruikt met reeds bestaande codes en links.

Vanaf vandaag is Luau niet langer een onlosmakelijk onderdeel van het Roblox-platform; is een onafhankelijke open source taal.

De taalruntime is gebaseerd op de sterk herziene Lua 5.1-runtimecode, maar de interpreter is volledig herschreven. De ontwikkeling omvatte enkele nieuwe optimalisatietechnieken die het mogelijk maakten om hogere prestaties te bereiken in vergelijking met Lua.

Toen Roblox 15 jaar geleden werd gemaakt, kozen we Lua als programmeertaal. Lua was klein, snel, gemakkelijk te integreren en te leren, en het opende enorme mogelijkheden voor onze ontwikkelaars.

Een groot deel van Roblox is gebouwd op Lua, inclusief honderdduizenden regels intern ontwikkelde code die de Roblox-applicatie en Roblox Studio tot op de dag van vandaag aandrijft, en de miljoenen ervaringen die ontwikkelaars hebben gecreëerd. Voor velen van hen was het de eerste programmeertaal die ze leerden.

Het project is ontwikkeld door Roblox en wordt gebruikt in gameplatformcode en aangepaste applicaties van dit bedrijf, inclusief de uitgever van Roblox Studio. Aanvankelijk werd Luau ontwikkeld achter gesloten deuren, maar uiteindelijk werd besloten om het over te hevelen naar de categorie van open projecten voor verdere gezamenlijke ontwikkeling met deelname van de gemeenschap.

Eigenschappen:

  • Een sequentieel type systeem, dat een tussenpositie inneemt tussen dynamisch en statisch schrijven. Luau staat indien nodig statisch schrijven toe door type-informatie op te geven via speciale annotaties.
  • De ingebouwde typen "Any", "nil", "boolean", "number", "string" en "thread". Tegelijkertijd blijft ook de mogelijkheid behouden om dynamisch typen te gebruiken zonder het type variabelen en functies expliciet te definiëren.
  • Ondersteuning voor letterlijke tekenreeksen (zoals in Lua 5.3)
  • Ondersteuning voor de uitdrukking "continue", naast het bestaande trefwoord "break", om naar een nieuwe iteratie van de lus te springen.
  • Ondersteuning voor operators voor samengestelde toewijzingen
  • Ondersteuning voor het gebruik van voorwaardelijke blokken "Als-dan-anders" in de vorm van uitdrukkingen die de waarde retourneren die is berekend tijdens de uitvoering van het blok. U kunt een willekeurig aantal elseif-instructies in een blok opgeven.
  • De aanwezigheid van een sandbox-modus waarmee u niet-vertrouwde code kunt uitvoeren. Deze functie kan worden gebruikt om uw eigen code en code die door een andere ontwikkelaar is geschreven, bijvoorbeeld bibliotheken van derden die niet kunnen worden gegarandeerd, naast elkaar te laten draaien.
  • Een beperking van de standaardbibliotheek waaruit functies die mogelijk beveiligingsproblemen kunnen veroorzaken, zijn verwijderd. Bijvoorbeeld bibliotheken "io" (toegang tot bestanden en opstartprocessen), "package" (toegang tot bestanden en laadmodules), "os" (functies om bestanden te openen en omgevingsvariabelen te wijzigen zijn verwijderd), "Debug" (onveilige geheugenverwerking), "dofile" en "loadfile" (toegang tot het bestandssysteem).
  • Bied tools voor statische code-analyse, foutdetectie (Linter) en validatie van het gebruik van typen.
  • analysator, bytecode-interpreter en krachtige eigen compiler.
  • Luau ondersteunt JIT-compilatie nog niet, maar er wordt beweerd dat de Luau-interpreter in sommige situaties behoorlijk vergelijkbaar is met LuaJIT.

Eindelijk als u er meer over wilt weten, kunt u de details bekijken In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.