Lua: Linguaggio di programmazione

Lua è un linguaggio di programmazione dinamico, riflessivo, imperativo e procedurale, utilizzato come linguaggio di scripting di uso generico.

Lua: Storia, Caratteristiche del linguaggio, Esempi Disambiguazione – Se stai cercando altri significati, vedi Lua (disambigua).
Lua
linguaggio di programmazione
Lua: Storia, Caratteristiche del linguaggio, Esempi
AutoreRoberto Ierusalimschy
Luiz Henrique de Figueiredo
Waldemar Celes
Data di origine1993
Ultima versione5.4.4 (26 gennaio 2022)
Utilizzogenerico, scripting, programmazione videogiochi
Paradigmimulti-paradigma: scripting, imperativo (procedurale, orientato agli oggetti), funzionale
Tipizzazioneforte, dinamica
Estensioni comuni.lua
Influenzato daC++, CLU, Modula, Scheme, SNOBOL
Ha influenzatoIo, GameMonkey, Squirrel, Falcon, MiniD, Julia
Implementazione di riferimento
Sistema operativomultipiattaforma
Licenzalicenza MIT
Sito webwww.lua.org/
(EN)

«The programming language.»

(IT)

«Il linguaggio di programmazione.»

Storia

Lua è stato creato nel 1993 da Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes, membri del Tecgraf/PUC-RIO, il gruppo di Tecnologia em Computação Gráfica presso la Pontifícia Università Cattolica di Rio de Janeiro, in Brasile. Versioni di Lua precedenti alla versione 5.0 furono rilasciate sotto licenza simile alla licenza zlib. Dalla versione 5.0 Lua è stato rilasciato sotto licenza MIT.

In un articolo pubblicato in Dr. Dobb's Journal, i creatori di Lua affermavano che Lisp e Scheme con la loro tipica struttura dati, la lista, hanno avuto la maggiore influenza sulla decisione di adottare la tabella come struttura dati primaria in Lua.

Lua è stato usato in molte applicazioni, commerciali e non.

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:

 print ("Hello, world!") 

Il fattoriale è un esempio di funzione ricorsiva:

 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:

 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.

 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  }) 

Esempi di utilizzo

  • Lua è usato molto spesso in ambito PSP per la programmazione di Homebrew.
  • Il firmware delle stampanti Olivetti quali Any_way, Simple_way e My_way, denominato HERCULE, è stato creato con il linguaggio di programmazione dinamico Lua.
  • Il Lua è utilizzato per creare script e plugin per il MMORPG Lineage II.
  • Il Lua è anche usato per creare Addon compatibili con il MMORPG World of Warcraft.
  • Il Lua è usato anche per creare script con il MMORPG Metin2.
  • Il Lua è usato anche per creare mod per Garry's Mod.
  • 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.
  • Due mod del videogioco Minecraft, chiamate ComputerCraft e OpenComputers, permettono di creare dei programmi all'interno del gioco stesso, scrivendoli in linguaggio Lua.
  • Tutti i plugin del videogioco Stormworks: Build And Rescue sono scritti con il linguaggio Lua.
  • Molti script per TeamSpeak vengono creati con Lua. Uno di questi è il funscripts.lua di aetas.
  • Il firmware Open Source OpenTx che equipaggia diversi apparati di radiocomando per modellismo ha la possibilità di eseguire programmi realizzati in linguaggio Lua.
  • Multi Theft Auto, la mod che permette la modalità di gioco online in GTA: San Andreas, è in parte scritta con Lua.
  • La piattaforma NUT di Cedac Software consente di realizzare embedded Applications tramite il linguaggio Lua.
  • I giochi disponibili su Roblox sono scritti interamente con Lua.
  • Molte mod per il videogioco Minetest sono realizzate in Lua.
  • Alcuni framework per lo sviluppo di videogiochi 2D utilizzano il linguaggio Lua: tra questi Defold, Love2D e Solar2D.
  • La scheda di prototipazione Esp8266 è programmabile in Lua, tramite il firmware contenuto nella piattaforma IoT NodeMCU.
  • Il game engine Game-Guru basa la programmazione e i comportamenti di oggetti e personaggi in linguaggio Lua.
  • Il Lua è anche usato per creare script su FiveM, una famosa mod del gioco GTA V.

Citazioni

Note

Altri progetti

Collegamenti esterni

Controllo di autoritàLCCN (ENsh2004007514 · GND (DE7547043-3 · BNF (FRcb166522948 (data) · J9U (ENHE987007563918605171
Lua: Storia, Caratteristiche del linguaggio, Esempi  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Tags:

Lua StoriaLua Caratteristiche del linguaggioLua EsempiLua Esempi di utilizzoLua CitazioniLua NoteLua Altri progettiLua Collegamenti esterniLuaLinguaggio di programmazioneRiflessione (informatica)

🔥 Trending searches on Wiki Italiano:

Ryan GoslingIl problema dei 3 corpiBayer 04 Leverkusen FußballClaudio RanieriMel GibsonPep GuardiolaWilliam, principe del GallesAttacco di Pearl HarborVittorio Emanuele III di SavoiaSerie A 2023-2024Daniele LuchettiGhostbusters - Minaccia glacialeBenedetta PorcaroliElio (cantante)Luigi PirandelloDaria BignardiNapoleone BonaparteEnrico MentanaVladimir PutinCity HunterMike BongiornoJulia RobertsJosh O'ConnorSilvio TestiCastel del MonteGiulietto ChiesaCoppa ItaliaEuropaLorella CuccariniBreaking BadMargot RobbieKurt RussellGiovanna CivitilloAlex ZanardiLa zona d'interesseJamie VardyEnrico BerlinguerDuomo di MilanoYoung SheldonAntonella ClericiLino BanfiMasterChef Italia (nona edizione)Casa CerviIntelligenza artificialeBrad PittStrage di ErbaFascismoEpisodi di American Horror Story (dodicesima stagione)Ralf RangnickAnna Maria SerafiniNino ManfrediOppenheimer (film)Killers of the Flower MoonCarlo AcutisAlessandro Del PieroGiacomo I d'InghilterraAlex GarlandComunismoCarlo I d'InghilterraPartigianoPier Paolo PasoliniBud SpencerIl talento di Mr. RipleyACF FiorentinaAntony BlinkenPinguini Tattici NucleariPapa FrancescoIl re (serie televisiva)Fabio CannavaroEstranei (film)Il professore mattoFratelli d'Italia (partito politico)Luca GuadagninoGaio Giulio CesareKyle MacLachlanElly SchleinAmici di Maria De Filippi (ventitreesima edizione, fase serale)Jessica ChastainFantastico (programma televisivo)🡆 More