Lua
Aquest article tracta sobre el llenguatge de programació. Si cerqueu la utilització de Lua a la Viquipèdia, vegeu «Viquipèdia:Lua». |
Aquest article o secció no cita les fonts o necessita més referències per a la seva verificabilitat. |
L'article necessita algunes millores de redacció. |
Tipus | llenguatge de programació, llenguatge de programació funcional, llenguatge de programació orientat a objectes, llenguatge script, llenguatge de programació imperatiu, llenguatge interpretat, Llenguatge de programació compilat i programari lliure |
---|---|
Data de creació | 1993 |
Disseny | Roberto Ierusalimschy |
Desenvolupador | Roberto Ierusalimschy |
Epònim | Lluna |
Paradigma de programació | programació multiparadigma, programació orientada a objectes, programació funcional, programació procedimental, Programació basada en prototips i llenguatge imperatiu |
Darrera versió estable | 5.4.7 () |
Llenguatge de programació | C |
Influenciat per | C++, CLU, Simple Object Language (en) , DEL (en) , Snobol, Modula, Modula-2 i Scheme |
Sistema operatiu | multiplataforma |
Extensió dels fitxers | lua, luna, lunaire i anair |
Codi font | Codi font |
Llicència | llicència MIT |
Etiqueta d'Stack Exchange | Etiqueta i Etiqueta |
Pàgina web | lua.org |
Lua és un llenguatge de programació imperatiu i estructurat. És bastant lleuger i es va dissenyar com a llenguatge de script amb una semàntica extensible. El nom significa «lluna» en portuguès.
Història
El van crear l'any 1993 Robert Ierusalimschy, Luiz Henrique de Figueiredo i Waldemar Celes, membres del Grup de Tecnologia en Computació Gràfica (Tecgraf) de la Pontifícia Universitat Catòlica de Rio de Janeiro. Les versions de Lua anteriors a la 5.0 es van distribuir 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.
S'utilitza en moltes aplicacions comercials, i no comercials, les quals s'incrementen cada any.
Característiques
Tipus de dades
És un llenguatge d'extensió, prou compacte per a usar-se en diferents plataformes. En Lua les variables no tenen tipus,
Tipus | Descripció | Exemples |
---|---|---|
nil | S'utilitza per a diferenciar el valor quan hi ha o no hi ha valor (nil) assignat. | - |
Booleà (boolean) | Inclou els valors «cert» i «fals». Sovint utilitzat per a verificació de condicions. | True, False |
Nombre (number) | Representa nombres reals, de coma flotant de doble precisió. | 4, 0.4, 4.57e-3, 0.3e12, 5e+20 |
Cadena de caràcters (string) | Representa una cadena de caràcters. | "Una frase" |
Funció (function) | Representa un mètode escrit en C o Lua. | print(a), foo(b) |
userdata | Representa dades arbitràries en C. | Qualsevol codi en C |
Fil (thread) | Representa fils d'execució independents i s'utilitza per a implementar co-rutines. | - |
Taula (table) | Representa matrius, taules de símbols, jocs, registres, grafs, arbres, etc, i implementa matrius associatives. Pot contenir qualsevol valor excepte «nil». Es poden indexar tant amb nombres com amb cadenes de caràcters. | {"a", "b", "c"}, {[1]="a", [2]="b", [3]="c"} |
La semàntica de Lua pot ser estesa i modificada redefinint funcions de les estructures de dades utilitzant metataules.
Lua suporta funcions d'ordre superior i col·lector d'escombraries.
Els programes en Lua no són interpretats directament, sinó compilats a codi bytecode, que s'executa 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 utilitzant LuaJIT
Aplicacions
Jocs
Com que Lua en ser compilat és petit, veloç i, a més, té una llicència permissiva, ha guanyat seguidors entre els desenvolupadors de videojocs. Altres usos de Lua:
- Al joc Roblox mes concretament en Roblox Studio, pots crear els teus propis videojocs amb el llenguatje 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 qual el WoW.exe té l'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, que es pot modificar gairebé completament. Gran part de Garry's Mod està escrit en Lua.
- Al 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 dins 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 saga Monkey 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), el LuaPlayer, es poden executar fitxers Lua a la coneguda consola portàtil de Sony.
- Regnum Online i TASpring utilitzen Lua per la majoria d'scripts del joc, com a la interfície, al mode de joc, les accions, etc.
Altres aplicacions
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ó.
També s'utilitza per programar aplicacions i jocs per la consola PSP de Sony, ja que el llenguatge en què escriu la PSP és un intèrpret del Lua, tot i que es necessita un programa per executar o un eboot d'una altra aplicació que utilitzi Lua (per exemple LuaDEV).
Enllaços externs
- Lua.org (anglès)
- LuaForge Arxivat 2005-08-31 a Wayback Machine. (anglès)