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ó.Hi ha fragments mal redactats.
Infotaula de llenguatge de programacióLua
Tipusllenguatge 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 Modifica el valor a Wikidata
Data de creació1993 Modifica el valor a Wikidata
DissenyRoberto Ierusalimschy Modifica el valor a Wikidata
DesenvolupadorRoberto Ierusalimschy Modifica el valor a Wikidata
EpònimLluna Modifica el valor a Wikidata
Paradigma de programacióprogramació multiparadigma, programació orientada a objectes, programació funcional, programació procedimental, Programació basada en prototips i llenguatge imperatiu Modifica el valor a Wikidata
Darrera versió estable5.4.7 () Modifica el valor a Wikidata
Llenguatge de programacióC Modifica el valor a Wikidata
Influenciat perC++, CLU, Simple Object Language (en) Tradueix, DEL (en) Tradueix, Snobol, Modula, Modula-2 i Scheme Modifica el valor a Wikidata
Sistema operatiumultiplataforma Modifica el valor a Wikidata
Extensió dels fitxerslua, luna, lunaire i anair Modifica el valor a Wikidata
Codi fontCodi font Modifica el valor a Wikidata
Llicènciallicència MIT Modifica el valor a Wikidata
Etiqueta d'Stack ExchangeEtiqueta i Etiqueta Modifica el valor a Wikidata
Pàgina weblua.org Modifica el valor a Wikidata

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 de dades natius a Lua
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:

Altres aplicacions

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

Enllaços externs

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Lua