Luau, lua keele tüübikontrolli variant, muutub avatud lähtekoodiks

Hiljuti kuulutati välja esimese versiooni väljaandmine programmeerimiskeelest sõltumatu luau, mis jätkub Lua arendamisega ja ühildub ka Lua 5.1 varasemate versioonidega.

Luau keel on mõeldud peamiselt skriptimismootorite manustamiseks rakendustes ning selle eesmärk on saavutada kõrge jõudlus ja madal ressursikulu. Projekti kood on kirjutatud C ++ keeles ja on avatud MIT litsentsi all.

Luau laiendab Luat tüübikontrollivõimaluste ja mõne versiooniga uued süntaktikad nagu stringi literaalid. Keel ühildub Lua 5.1 eelmiste versioonidega ja osaliselt ka uuemate versioonidega. Lua Runtime API on toetatud, võimaldab Luaud kasutada juba olemasolevate koodide ja linkidega.

Tänase seisuga ei ole Luau enam Robloxi platvormi lahutamatu osa; on sõltumatu avatud lähtekoodiga keel.

Keele käitusaeg põhineb põhjalikult muudetud Lua 5.1 käituskoodil, kuid tõlk on täielikult ümber kirjutatud. Arendus hõlmas mõningaid uusi optimeerimistehnikaid, mis võimaldasid saavutada suuremat jõudlust võrreldes Luaga.

Kui Roblox 15 aastat tagasi loodi, valisime programmeerimiskeeleks Lua. Lua oli väike, kiire, hõlpsasti integreeritav ja õpitav ning see avas meie arendajatele tohutult võimalusi.

Suur osa Robloxist ehitati Luale, sealhulgas sadu tuhandeid sisemiselt arendatud koodiridu, mis toidavad Roblox rakendust ja Roblox Studiot tänapäevani, ning miljoneid kogemusi, mille arendajad on loonud. Paljude jaoks oli see esimene programmeerimiskeel, mida nad õppisid.

Projekti töötas välja Roblox ja seda kasutatakse mänguplatvormi koodides ja kohandatud rakendustes sellelt ettevõttelt, sealhulgas Roblox Studio väljaandjalt. Algselt arendati Luaud kinniste uste taga, kuid lõpuks otsustati see viia avatud projektide kategooriasse edasiseks ühiseks arendamiseks kogukonna osalusel.

Peamised omadused:

  • Järjestikust tüüpi süsteem, mis asub dünaamilise ja staatilise kirjutamise vahel. Luau võimaldab staatilist kirjutamist vastavalt vajadusele, täpsustades tüübiteabe spetsiaalsete märkuste kaudu.
  • The sisseehitatud tüübid "Igasugune", "null", "tõuväärtus", "arv", "string" ja "lõng". Samas säilib ka võimalus kasutada dünaamilist tippimist ilma muutujate ja funktsioonide tüüpe selgesõnaliselt määratlemata.
  • Sõnasõnaliste stringide tugi (nagu Lua 5.3 puhul)
  • Toetage väljendit "jätka" lisaks olemasolevale märksõnale "break", et hüpata tsükli uude iteratsiooni.
  • Kombineeritud määramise operaatorite tugi
  • Kasutamise tugi tingimuslikud plokid "Kui-siis-muu" avaldiste kujul, mis tagastavad ploki täitmisel arvutatud väärtuse. Plokis saate määrata suvalise arvu elseif-lauseid.
  • Liivakastirežiimi olemasolu mis võimaldab käivitada ebausaldusväärset koodi. Seda funktsiooni saab kasutada oma koodi ja teise arendaja kirjutatud koodi korraldamiseks, näiteks kolmanda osapoole teegid, mida ei saa garanteerida, kõrvuti töötamiseks.
  • Standardteegi piirang, millest on eemaldatud funktsioonid, mis võivad põhjustada turvaprobleeme. Näiteks teegid "io" (juurdepääs failidele ja käivitusprotsessidele), "pakett" (juurdepääs failidele ja laadimismoodulitele), "os" (failidele juurdepääsu ja keskkonnamuutujate muutmise funktsioonid on eemaldatud), "Silumine" (ebaturvaline mälu käsitlemine), "dofile" ja "loadfile" (juurdepääs failisüsteemile).
  • Pakkuge tööriistu staatilise koodi analüüsiks, vigade tuvastamiseks (Linter) ja tüüpide kasutamise kinnitamiseks.
  • analüsaator, baitkoodi tõlgendaja ja suure jõudlusega patenteeritud kompilaator.
  • Luau ei toeta veel JIT-i koostamist, kuid väidetakse, et Luau tõlk on mõnes olukorras LuaJIT-iga üsna võrreldav.

Lõpuks kui olete huvitatud sellest rohkem teada saama, saate üksikasju vaadata Järgmisel lingil.