27-12-2010, 02:32 PM
Lua è un linguaggio di programmazione dinamico, riflessivo, imperativo e procedurale, utilizzato come linguaggio di scripting di uso generico. È molto usato per programmare i videogiochi
Caratteristiche del linguaggio
Le caratteristiche principali di Lua sono le funzioni, viste come "oggetti" di primo livello e quindi assegnabili a variabili, e l'uso di tabelle come strutture dati generiche. Queste caratteristiche permettono al linguaggio di implementare caratteristiche viste in linguaggi orientati agli oggetti senza che lo stesso lo sia.
Esempi
Il classico programma "Hello world" può essere scritto come:
Il fattoriale è un esempio di funzione ricorsiva:
Questo esempio mostra come sia possibile, in Lua, ridefinire le funzioni del linguaggio:
Qualunque futura chiamata alla funzione print farà ora riferimento alla nuova funzione, e la vecchia funzione sarà accessibile soltanto dalla nuova versione della stessa.
Questo esempio mostra una caratteristica di Lua: la possibilità di definire dinamicamente tabelle (la struttura dati usata dal linguaggio). In questo caso si tratta di una tabella che associa al valore fibs[n] l'ennesimo numero di Fibonacci.
Curiosità
Nel videogioco Fuga da Monkey Island, lo Scumm Bar diventerà un raffinato sushi bar ed il nome verrà cambiato in Lua Bar, a sottolineare l'adozione del nuovo linguaggio di scripting GrimE sviluppato in Lua.
Il firmware delle stampanti Olivetti quali Any_way, Simple_way e My_way, denominato HERCULE, è stato creato con il linguaggio di programmazione dinamico Lua.
Lua è usato molto spesso in ambito PSP per la programmazione di Homebrew.
Il Lua è anche usato per creare Addon compatibili con il MMORPG World of Warcraft
Il Lua è usato pure per creare script con il MMORPG Metin2.
Con Lua si sono creati inoltre numerosi script e trainer per il pluri-premiato gioco della Rockstar Games GTA IV
Nel videogioco per PC Baldur's Gate II: Shadows of Amn l'intelligenza artificiale dei personaggi è gestita in Lua.
È infatti possibile personalizzare interamente questi script per modificare il comportamento predefinito di ogni personaggio in base alle varie circostanze di gioco.
Fonte : Wikipedia
Sito Ufficiale : http://www.lua.org/
Caratteristiche del linguaggio
Le caratteristiche principali di Lua sono le funzioni, viste come "oggetti" di primo livello e quindi assegnabili a variabili, e l'uso di tabelle come strutture dati generiche. Queste caratteristiche permettono al linguaggio di implementare caratteristiche viste in linguaggi orientati agli oggetti senza che lo stesso lo sia.
Esempi
Il classico programma "Hello world" può essere scritto come:
Codice PHP:
print "Hello, world!"
Il fattoriale è un esempio di funzione ricorsiva:
Codice PHP:
function factorial(n)
if n == 0 then
return 1
end
return n * factorial(n - 1)
end
Questo esempio mostra come sia possibile, in Lua, ridefinire le funzioni del linguaggio:
Codice PHP:
do
local oldprint = print -- salva la funzione come era definita da Lua, non salvando il
-- valore restituito dalla funzione, ma la funzione stessa
print = function(s) -- ridefinisce la funzione print
if s == "foo" then
oldprint("bar")
else
oldprint(s)
end
end
end
Qualunque futura chiamata alla funzione print farà ora riferimento alla nuova funzione, e la vecchia funzione sarà accessibile soltanto dalla nuova versione della stessa.
Questo esempio mostra una caratteristica di Lua: la possibilità di definire dinamicamente tabelle (la struttura dati usata dal linguaggio). In questo caso si tratta di una tabella che associa al valore fibs[n] l'ennesimo numero di Fibonacci.
Codice PHP:
fibs = { 1, 1 } -- valore iniziale per fibs[1] and fibs[2]
setmetatable(fibs, {
__index = function(fibs,n) -- chiama questa funzione se il valore fibs[n] non esiste
fibs[n] = fibs[n-2] + fibs[n-1] -- calcola e memorizza il valore
return fibs[n]
end
})
Curiosità
Nel videogioco Fuga da Monkey Island, lo Scumm Bar diventerà un raffinato sushi bar ed il nome verrà cambiato in Lua Bar, a sottolineare l'adozione del nuovo linguaggio di scripting GrimE sviluppato in Lua.
Il firmware delle stampanti Olivetti quali Any_way, Simple_way e My_way, denominato HERCULE, è stato creato con il linguaggio di programmazione dinamico Lua.
Lua è usato molto spesso in ambito PSP per la programmazione di Homebrew.
Il Lua è anche usato per creare Addon compatibili con il MMORPG World of Warcraft
Il Lua è usato pure per creare script con il MMORPG Metin2.
Con Lua si sono creati inoltre numerosi script e trainer per il pluri-premiato gioco della Rockstar Games GTA IV
Nel videogioco per PC Baldur's Gate II: Shadows of Amn l'intelligenza artificiale dei personaggi è gestita in Lua.
È infatti possibile personalizzare interamente questi script per modificare il comportamento predefinito di ogni personaggio in base alle varie circostanze di gioco.
Fonte : Wikipedia
Sito Ufficiale : http://www.lua.org/