Luau, una variante di controllo del tipo del linguaggio Lua diventa open source

recentemente è stato annunciato il rilascio della prima versione indipendente dal linguaggio di programmazione Luau, che continua con lo sviluppo di Lua ed è compatibile anche con le versioni precedenti di Lua 5.1.

La lingua Luau è progettato principalmente per incorporare motori di scripting nelle applicazioni e mira a ottenere prestazioni elevate e un basso consumo di risorse. Il codice del progetto è scritto in C++ ed è aperto con licenza MIT.

Luau espande Lua con funzionalità di controllo del tipo e alcune build nuove sintattiche come stringhe letterali. La lingua è compatibile con le versioni precedenti di Lua 5.1 e parzialmente con le versioni più recenti. L'API Lua Runtime è supportata, consentendo l'utilizzo di Luau con codici e collegamenti preesistenti.

Da oggi Luau non è più una parte inseparabile della piattaforma Roblox; è un linguaggio open source indipendente.

Il runtime del linguaggio è basato sul codice runtime Lua 5.1 pesantemente rivisto, ma l'interprete è stato completamente riscritto. Lo sviluppo ha riguardato alcune nuove tecniche di ottimizzazione che hanno permesso di ottenere prestazioni più elevate rispetto a Lua.

Quando Roblox è stato creato 15 anni fa, abbiamo scelto Lua come linguaggio di programmazione. Lua era piccolo, veloce, facile da integrare e imparare e ha aperto enormi possibilità ai nostri sviluppatori.

Gran parte di Roblox è stato costruito su Lua, incluse centinaia di migliaia di righe di codice sviluppato internamente che alimentano l'applicazione Roblox e Roblox Studio fino ad oggi, e i milioni di esperienze che gli sviluppatori hanno creato. Per molti di loro è stato il primo linguaggio di programmazione che hanno imparato.

Il progetto è stato sviluppato da Roblox ed è utilizzato nel codice della piattaforma di gioco e nelle applicazioni personalizzate da questa azienda, incluso l'editore di Roblox Studio. Inizialmente, Luau è stato sviluppato a porte chiuse, ma alla fine si è deciso di trasferirlo nella categoria dei progetti aperti per un ulteriore sviluppo congiunto con la partecipazione della comunità.

Caratteristiche:

  • Un sistema di tipo sequenziale, che occupa una posizione intermedia tra scrittura dinamica e statica. Luau consente la scrittura statica secondo necessità specificando le informazioni sul tipo tramite annotazioni speciali.
  • Il tipi incorporati "Any", "nil", "boolean", "number", "string" e "thread". Allo stesso tempo, viene preservata anche la possibilità di utilizzare la tipizzazione dinamica senza definire esplicitamente il tipo di variabili e funzioni.
  • Supporto per stringhe letterali (come in Lua 5.3)
  • Supporto per l'espressione "continua", oltre alla parola chiave esistente "break", per passare a una nuova iterazione del ciclo.
  • Supporto per operatori di assegnazione composti
  • Supporto per l'uso di blocchi condizionali "If-then-else" sotto forma di espressioni che restituiscono il valore calcolato durante l'esecuzione del blocco. È possibile specificare un numero arbitrario di istruzioni elseif in un blocco.
  • La presenza di una modalità sandbox che consente di eseguire codice non attendibile. Questa funzione può essere utilizzata per organizzare il proprio codice e il codice scritto da un altro sviluppatore, ad esempio librerie di terze parti che non possono essere garantite, per l'esecuzione affiancata.
  • Una limitazione della libreria standard da cui sono state rimosse le funzioni che potrebbero creare problemi di sicurezza. Ad esempio, le librerie "io" (accesso ai file e ai processi di avvio), "package" (accesso ai file e caricamento dei moduli), "os" (le funzioni per accedere ai file e modificare le variabili di ambiente sono state rimosse), "Debug" (non sicuro gestione della memoria), "dofile" e "loadfile" (accesso al file system).
  • Fornire strumenti per l'analisi del codice statico, il rilevamento degli errori (Linter) e la convalida dell'uso dei tipi.
  • Analizzatore, interprete di bytecode e compilatore proprietario ad alte prestazioni.
  • Luau non supporta ancora la compilazione JIT, ma si sostiene che l'interprete Luau sia abbastanza paragonabile in termini di prestazioni a LuaJIT in alcune situazioni.

Infine se sei interessato a saperne di più, puoi controllare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.