Lua: una presentazione del linguaggio di programmazione

“Lua” è una parola portoghese che significa “luna”, ma è anche un linguaggio di programmazione estendibile e multipiattaforma. Tra le altre particolarità troviamo le dimensioni ridotte di appena 120 Kilobyte e l’elevata velocità. Motivi più che sufficienti per prendere questa luna e analizzarla più nel dettaglio come linguaggio di scripting.

Quest’articolo offre un’introduzione generale al linguaggio di scripting Lua. Nella Digital Guide troverete un tutorial su Lua più dettagliato per imparare a programmare con Lua.

Cos’è Lua?

Il cosmo dei linguaggi di programmazione del web è pressoché infinito. Lua riesce a distinguersi dalla massa, ma nonostante ciò vive all’ombra dei linguaggi più noti come Python o Perl. Sembrerà strano ma Lua esiste da più di due decenni eppure si utilizza raramente come linguaggio di programmazione autonomo perché gli sviluppatori preferiscono utilizzarlo come linguaggio di scripting incorporato per i singoli programmi. Il campo di utilizzo principale è sempre stato quello dei videogiochi e dei motori grafici, ma Lua è impiegato come linguaggio di programmazione anche per numerosi programmi di rete e di sistema.

Il nome portoghese non è un caso. Lua è stato sviluppato alla Pontifícia Università Cattolica di Rio de Janeiro da Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes. Fino al 1992 in Brasile erano presenti limitazioni severe per l’importazione di hardware e software; per superare questa situazione di emergenza, i tre programmatori svilupparono un proprio linguaggio di scripting chiamato Lua. Oggi Lua fa parte dei linguaggi di programmazione più importanti e amati in molti settori.

Ma cos’è Lua precisamente? Essenzialmente Lua è una libreria che i programmatori possono integrare nel proprio software per renderlo in grado di compiere operazioni di scripting. Lua è disponibile per i sistemi operativi più comuni. Contiene un interpreter molto compatto, che con poche centinaia di righe esegue il codice e riesce anche ad accedere alla libreria. Nonostante il principio minimo, l’interpreter offre caratteristiche utili come la pulizia automatica di tutte le strutture di dati non più utilizzate, lasciando così libero spazio importante sulla memoria. Ecco le caratteristiche più importanti di Lua in breve:

  • compatto
  • veloce nell'esecuzione
  • estendibile in modo eccellente
  • facile da imparare
  • disponibile gratuitamente

Cos’è il linguaggio di programmazione Lua e per cosa si usa?

Lua è un linguaggio di scripting utilizzato per la programmazione procedurale. Perciò fa parte dei paradigmi di programmazione nella rubrica linguaggi di scripting imperativi. È implementato come libreria in C e offre funzioni come il codice Lua e un modello di programma host (chiamato lua) che mette a disposizione un proprio interpreter Lua.

In qualità di linguaggio di scripting, Lua non ha un programma principale. Lavora esclusivamente se incorporato su un’applicazione ospite che può aprire le funzioni sopra elencate attraverso il codice Lua. Grazie alla funzione C, è possibile estendere Lua con numerosi funzioni, per ricoprire tutte le varie richieste nell'ambito della programmazione. Il linguaggio di programmazione è facile da personalizzare, garantendo in questo modo un framework sintattico comune.

Chi conosce già Pascal, non avrà problemi con la sintassi di Lua, perché i linguaggi di programmazione sono molto simili su questo punto. Più comandi insieme sulla stessa riga si possono dividere con un punto e virgola. In tutto Lua ha 20 keyword definite, facili da memorizzare. In generale Lua lavora con blocchi funzione che cominciano con parole chiave come goto e terminano con end, elseif o else. Local identifica le variabili locali, valide solo per il blocco funzione che contiene la keyword. I blocchi funzione possono essere annidati l’uno nell’altro.

Lua lavora con i file table, userdata, function, thread, nil, boolean, string e number. Il primo (table = tabella) è anche l’unico file strutturato. I tipi di variabili sono definiti nel corso dello scripting, ma, se necessario, si possono convertire.

Come funziona Lua?

Con le possibilità offerte dalle applicazioni del linguaggio di scripting Lua, si può arrivare sulla luna: i suoi limiti nella programmazione sono quasi del tutto inesistenti. Lua si può estendere quasi all’infinito con l'aiuto di moduli definiti dall'utente. Esempi pratici vanno dai server web scritti in Lua, passando per la creazione di una propria app fino allo sviluppo di videogames.

Soprattutto nel mondo del gaming, Lua è il linguaggio di programmazione più utilizzato. Sono tanti i giochi scritti in Lua. Spesso Lua è inserito nelle engine, per separarle dalle operazioni di configurazione o dai personaggi del gioco. Questo rende l’engine del gioco più flessibile, permettendo a diversi giochi di usare la stessa engine. Esempi noti sono il gioco di ruolo online multiplayer World of Warcraft o lo stesso Enigma, gioco d’indovinelli di grande successo.

Lua è impiegato spesso anche nel campo della programmazione di rete e di sistema e si utilizza nei programmi per scopi di configurazione e automazione; esempi importanti sono VLC Media Player o Adobe Photoshop Lightroom. Per quanto riguarda le reti, sono i software di analisi come Wireshark ad utilizzare le funzioni di Lua. Inoltre, si servono di questo linguaggio di scripting anche il proxy MySQL, il Redis NoSQL o i server web Apache e Nginx.

Lua: il linguaggio di programmazione con tanti pregi e pochi difetti

Da un punto di vista concettuale, Lua offre solo poche caratteristiche innovative come linguaggio di programmazione. La sua sintassi è del tutto convenzionale e, grazie alle sue 20 parole chiave già menzionate, è anche davvero semplice.

In Lua la tipizzazione è dinamica. Il tipo di una variabile si definisce nel corso dello script ma, come già detto, può essere anche convertito in un altro tipo. Questo è uno dei grandi pregi di Lua, soprattutto in confronto a CSS o PHP, dove l'assegnazione dei tipi in “booleani”, ossia valori di verità, non segue un metodo preciso.

Il più grande pregio di Lua: tutti i testi o i numeri da adattare sono scritti direttamente in variabili. L'assegnazione avviene in un blocco chiuso all’inizio del modulo. Le funzioni successive attingono solo alla variabile. Se cambia l'ambiente, solo i valori nel blocco devono essere adeguati di conseguenza. Si tratta del lavoro di programmazione più semplice dalla prima creazione.

Il difetto: se si modifica una funzione con un aggiornamento, è richiesta una nuova composizione del codice sorgente per ogni progetto rendendo necessario un aggiornamento per tutte le pagine collegate.

In sintesi

Il linguaggio di scripting Lua può essere utilizzato per creare programmi autonomi ma può fungere anche da linguaggio da incorporare. Forse Lua non ha la stessa popolarità degli altri linguaggi, ma di certo non manca di strumenti di programmazione.

Breve panoramica nel linguaggio di scripting Lua (con code snippet)

Per concludere, vi offriamo con l’aiuto di due semplici esempi una rapidissima panoramica del funzionamento di Lua.

Esempio 1: andare a capo in Lua

In Lua si va a capo inserendo un “\” o “\n” e un a capo.

print ('1 :Hello\
	World')
print ("2:Hello\
	World")

In questo caso, il risultato finale apparirà come segue:

1:Hello
World
2:Hello
World

Esempio 2: variabili in Lua

Nel linguaggio di programmazione Lua le variabili non devono essere dichiarate, sono create in caso di necessità. I valori possono essere dei seguenti tipi: nil (che è anche il valore di variabili non ancora create), numeri, letterali (caratteri, lettere, parole ecc.), boolean (vero/falso o true/false), tabelle e funzioni. Un semplice esempio di coding:

print ( var )
var = "Hello World"
print ( var )

Con la variabile non definita “nil”, il risultato è il seguente:

nil
Hello World
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.