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

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#edit

Tipus de dades#edit

É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
TipusDescripcióExemples
nilS'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)
userdataRepresenta 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#edit

Jocs#edit

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#edit

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#edit

This article is mirrored from “Lua” on Català Wikipedia, revision 36877202, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.

Synced with Wikipedia revision 36877202 · just now