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, programari lliure i format de fitxer |
---|---|
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.6 () |
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.
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.
É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
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:
Lua també s'ha usat per processar dades d'entrada a sistemes complexos, configurar aplicacions, controlar maquinari i moltes altres coses.
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).
A Wikimedia Commons hi ha contingut multimèdia relatiu a: Lua |