Luau, varijanta Lua jezika za provjeru tipa postaje open source

Nedavno najavljeno je izdanje prve verzije nezavisno od programskog jezika luau, koji se nastavlja s razvojem Lua-e i koji je također kompatibilan sa prethodnim verzijama Lua-e 5.1.

Luau jezik je dizajniran prvenstveno za ugrađivanje motora za skriptiranje u aplikacijama i ima za cilj postizanje visokih performansi i niske potrošnje resursa. Kod projekta je napisan u C++ i otvoren je pod MIT licencom.

Luau proširuje Lua sa mogućnostima provjere tipa i nekim buildovima nove sintaktike poput string literala. Jezik je kompatibilan s prethodnim verzijama Lua 5.1 i djelomično s novijim verzijama. Lua Runtime API je podržan, omogućavajući Luau korištenje s već postojećim kodovima i vezama.

Od danas, Luau više nije neodvojivi dio Roblox platforme; je nezavisni jezik otvorenog koda.

Izvršno vrijeme jezika je bazirano na uvelike revidiranom Lua 5.1 runtime kodu, ali je tumač potpuno prepisan. Razvoj je uključivao neke nove tehnike optimizacije koje su omogućile postizanje većih performansi u odnosu na Lua.

Kada je Roblox stvoren prije 15 godina, odabrali smo Lua kao programski jezik. Lua je bila mala, brza, laka za integraciju i učenje, i otvorila je ogromne mogućnosti za naše programere.

Veći dio Robloxa je izgrađen na Lua, uključujući stotine hiljada linija interno razvijenog koda koji pokreće Roblox aplikaciju i Roblox Studio do danas, kao i milione iskustava koje su programeri stvorili. Za mnoge od njih to je bio prvi programski jezik koji su naučili.

Projekat je razvio Roblox i koristi se u kodu platforme za igre i prilagođenim aplikacijama iz ove kompanije, uključujući izdavača Roblox Studio. U početku se Luau razvijao iza zatvorenih vrata, ali je na kraju odlučeno da se prebaci u kategoriju otvorenih projekata za daljnji zajednički razvoj uz sudjelovanje zajednice.

Glavne karakteristike:

  • Sistem sekvencijalnog tipa, koji zauzima srednju poziciju između dinamičkog i statičkog pisanja. Luau dozvoljava statično pisanje po potrebi specificirajući informacije o tipu kroz posebne napomene.
  • The ugrađeni tipovi "Bilo koji", "nil", "boolean", "broj", "string" i "nit". Istovremeno, očuvana je i mogućnost korištenja dinamičkog kucanja bez eksplicitnog definiranja tipa varijabli i funkcija.
  • Podrška za literalne nizove (kao u Lua 5.3)
  • Podrška za izraz "continue", pored postojeće ključne riječi "break", za skok na novu iteraciju petlje.
  • Podrška za složene operatore dodjele
  • Podrška za korištenje uslovni blokovi "Ako-onda-drugo" u obliku izraza koji vraćaju vrijednost izračunatu tokom izvršavanja bloka. Možete specificirati proizvoljan broj elseif naredbi u bloku.
  • Prisustvo režima sandbox-a koji vam omogućava pokretanje nepouzdanog koda. Ova funkcija se može koristiti za organiziranje vašeg vlastitog koda i koda koji je napisao drugi programer, na primjer biblioteke trećih strana za koje se ne može garantirati, kako bi se pokrenuli jedan pored drugog.
  • Ograničenje standardne biblioteke iz koje su uklonjene funkcije koje bi potencijalno mogle stvoriti sigurnosne probleme. Na primjer, biblioteke "io" (pristup datotekama i procesima pokretanja), "paket" (pristup datotekama i učitavanje modula), "os" (uklonjene su funkcije pristupa datotekama i promjena varijabli okruženja), "Debug" (nesigurno rukovanje memorijom), "dofile" i "loadfile" (pristup sistemu datoteka).
  • Obezbedite alate za statičku analizu koda, detekciju grešaka (Linter) i validaciju upotrebe tipova.
  • analizator, bajtkod interpreter i vlasnički kompajler visokih performansi.
  • Luau još ne podržava JIT kompilaciju, ali se tvrdi da je Luau interpreter prilično uporediv po performansama sa LuaJIT-om u nekim situacijama.

Konačno ako ste zainteresirani da saznate više o tome, možete provjeriti detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.