Luau, en typkontrollvariant av Lua-språket blir öppen källkod

nyligen lanseringen av den första versionen tillkännagavs oberoende av programmeringsspråk luau, som fortsätter med utvecklingen av Lua och även är kompatibel med tidigare versioner av Lua 5.1.

Luau-språket är designad främst för att bädda in skriptmotorer i applikationer och syftar till att uppnå hög prestanda och låg resursförbrukning. Projektkoden är skriven i C++ och är öppen under MIT-licensen.

Luau utökar Lua med typkontrollfunktioner och några builds ny syntaktik som strängliteraler. Språket är kompatibelt med tidigare versioner av Lua 5.1 och delvis med nyare versioner. Lua Runtime API stöds, gör att Luau kan användas med redan existerande koder och länkar.

Från och med idag är Luau inte längre en oskiljaktig del av Roblox-plattformen; är ett oberoende språk med öppen källkod.

Språkets körtid är baserad på kraftigt reviderad Lua 5.1 körtidskod, men tolken har skrivits om helt. Utvecklingen innebar några nya optimeringstekniker som gjorde det möjligt att uppnå högre prestanda jämfört med Lua.

När Roblox skapades för 15 år sedan valde vi Lua som programmeringsspråk. Lua var liten, snabb, lätt att integrera och lära sig, och det öppnade enorma möjligheter för våra utvecklare.

Mycket av Roblox byggdes på Lua, inklusive hundratusentals rader med internt utvecklad kod som driver Roblox-applikationen och Roblox Studio till denna dag, och de miljontals upplevelser som utvecklare har skapat. För många av dem var det det första programmeringsspråket de lärde sig.

Projektet har utvecklats av Roblox och används i spelplattformskod och anpassade applikationer från detta företag, inklusive utgivaren av Roblox Studio. Ursprungligen utvecklades Luau bakom stängda dörrar, men i slutändan beslutades det att överföra det till kategorin öppna projekt för vidare gemensam utveckling med deltagande av samhället.

Funktioner:

  • Ett sekventiellt typsystem, som intar en mellanposition mellan dynamisk och statisk skrivning. Luau tillåter statisk skrivning efter behov genom att specificera typinformation genom speciella anteckningar.
  • De inbyggda typer "Val som helst", "noll", "boolean", "nummer", "sträng" och "tråd". Samtidigt bevaras också möjligheten att använda dynamisk typning utan att explicit definiera typen av variabler och funktioner.
  • Stöd för bokstavliga strängar (som i Lua 5.3)
  • Stöd för uttrycket "fortsätt", förutom det befintliga nyckelordet "break", för att hoppa till en ny iteration av loopen.
  • Stöd för sammansatta uppdragsoperatörer
  • Stöd för användning av villkorliga block "If-then-else" i form av uttryck som returnerar det värde som beräknats under exekveringen av blocket. Du kan ange ett godtyckligt antal elseif-satser i ett block.
  • Närvaron av ett sandlådeläge som låter dig köra opålitlig kod. Denna funktion kan användas för att organisera din egen kod och kod skriven av en annan utvecklare, till exempel tredjepartsbibliotek som inte kan garanteras, att köras sida vid sida.
  • En begränsning av standardbiblioteket från vilket funktioner som potentiellt kan skapa säkerhetsproblem har tagits bort. Till exempel, biblioteken "io" (åtkomst till filer och startprocesser), "paket" (åtkomst till filer och laddningsmoduler), "os" (funktioner för att komma åt filer och ändra miljövariabler har tagits bort), "Debug" (osäker minneshantering), "dofile" och "loadfile" (åtkomst till filsystem).
  • Tillhandahålla verktyg för statisk kodanalys, feldetektering (Linter) och validering av användningen av typer.
  • Analysator, bytekodtolkare och högpresterande proprietär kompilator.
  • Luau stöder inte JIT-kompilering ännu, men det hävdas att Luau-tolken är ganska jämförbar i prestanda med LuaJIT i vissa situationer.

Slutligen om du är intresserad av att veta mer om detkan du kontrollera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.