Lua

De Viquipèdia
Dreceres ràpides: navegació, cerca
Aquest article tracta sobre el llenguatge de programació. Si cerqueu la utilització de Lua a la Viquipèdia, vegeu «Viquipèdia:Lua».

Lua és un llenguatge de programació imperatiu, estructurat. És bastant lleuger, va ser dissenyat com a llenguatge de script amb una semàntica extendible. El nom significa "lluna" en portuguès.

Història[modifica | modifica el codi]

Lua va ser creat l'any 1993 per Robert Ierusalimschy, Luiz Henrique de Figueiredo i Waldemar Celes, membres del Grup de Tecnologia en Computació Gràfica (Tecgraf) a la Pontifícia Universitat Catòlica de Rio de Janeiro. Les versions de Lua anteriors a la 5.0 van ser distribuïdes sota una llicència similar a la BSD, de la versió 5.0 en endavant s'utilitza la llicència MIT, compatible amb la GPL.

Lua ha estat usat en moltes aplicacions comercials i no comercials, les quals s'incrementen cada any.

Característiques[modifica | modifica el codi]

Lua és un llenguatge d'extensió, prou compacte per a usar-se en diferents plataformes. A Lua les variables no tenen tipus, només els dada si poden ser lògics, sencers, nombres amb punt flotant o cadenes. Estructures de dades com matrius, conjunts, taules hash, llistes i registres poden ser representades utilitzat l'única estructura de dades de Lua: la taula.

La semàntica de Lua pot ser estesa i modificada redefinint funcions de les estructures de dades utilitzant metatablas.

Lua suporta funcions d'ordre superior, col lector d'escombraries.

Els programes en Lua no són interpretats directament, sinó compilats a codi bytecode, que és executat a la màquina virtual de Lua. El procés de compilació és normalment transparent a l'usuari i es realitza en temps d'execució, però pot fer-se amb anticipació per augmentar el rendiment i reduir l'ús de memòria en prescindir del compilador.

També és possible la Compilació JIT utilitzat LuaJIT

Aplicacions[modifica | modifica el codi]

Jocs[modifica | modifica el codi]

Com que Lua compilat és petit, veloç i té una llicència permissiva ha guanyat seguidors entre els desenvolupadors de videojocs. Altres usos de Lua:

  • World of Warcraft, on l'usuari té la possibilitat de personalitzar gairebé completament la interfície creant afegits que permeten informar de qualsevol cosa al seu corresponent carpeta Interface en la què el WoW. exe té el intèrpret de lua i executa en la seva Interface l'Addon creat a lua.
  • També en un mod tipus "sandbox" per a Half-Life 2 anomenat Garry's Mod, podent modificar gairebé completament. Gran part de Garry's Mod està escrit en Lua.
  • En el Joc Minecraft, en el mod del joc anomenat ComputerCraft, on l'usuari té l'opció de crear un ordinador i utilitzar (i modificar) certs programes dintre del joc.
  • El joc de RPGTibia* Part de STALKER - Shadow of Chernobyl , permetent al jugador modificar armes, armadures i aspectes diversos del joc.
  • Grim Fandango i La Fuga de Monkey Island (quarta entrega de la sagaMonkey Island ) utilitzen internament scripts en Lua per definir la història i els esdeveniments que ocorren durant la partida.
  • Mitjançant un programa casolà (o homebrew), l'LuaPlayer, permet executar arxius. Lua a la coneguda consola portàtil de Sony.
  • Regnum Online utilitza LUA per a la majoria de scripts del joc com a interfície, mode de joc, accions, etc.
  • TASpring, un joc d'estratègia en temps real, utilitza LUA per a la majoria d'scripts del joc com a interfície, mode de joc, accions, etc.

Altres aplicacions[modifica | modifica el codi]

Lua també s'ha usat per processar dades d'entrada a sistemes complexos, configurar aplicacions, controlar maquinari i moltes altres coses.

  • El gestor de finestres awesome en la seva versió 3 utilitza Lua per al seu fitxer de configuració.

La llista d'usos reportats es pot trobar aquí.

També Lua és utilitzat per a programar aplicacions i jocs per a la consola de Sony PSP, ja que el llenguatge en què escriu la PSP és un intèrpret del Lua. Encara que es necessita un programa per executar o un eboot d'una altra aplicació que utilitzi Lua (per exemple LuaDEV).

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Lua Modifica l'enllaç a Wikidata