Está en la página 1de 4

Lua

Lua es un lenguaje de programacin imperativo, Tambin es posible la compilacin en tiempo de ejecuestructurado y bastante ligero que fue diseado como un cin utilizando LuaJIT.
lenguaje interpretado con una semntica extendible. El
nombre signica luna en portugus.

3.1 Cdigos de ejemplo

El clsico programa Hola mundo puede ser escrito de la


siguiente manera:

Historia

print(Hola mundo!")

Lua fue creado en 1993 por Roberto Ierusalimschy, Luiz


Henrique de Figueiredo y Waldemar Celes basado en C
y Perl con una estructura similar. Miembros del Grupo
de Tecnologa en Computacin Grca (Tecgraf) en la
Ponticia Universidad Catlica de Ro de Janeiro. Las
versiones de Lua anteriores a la 5.0 fueron distribuidas
bajo una licencia similar a la BSD, de la versin 5.0
en adelante se utiliza la licencia MIT, compatible con la
GPL.

Los comentarios usan la siguiente sintaxis, similar a Ada,


SQL y VHDL
-- Un comentario en Lua empieza con doble guin
hasta la siguiente lnea --[[ Los strings y comentarios
multilnea se adornan con doble corchete]]

El factorial es un ejemplo de funcin recursiva.


Lua ha sido usado en muchas aplicaciones comerciales y no comerciales, cuyo nmero incrementa cada function factorial(n) if n == 0 then return 1 else return n
* factorial(n - 1) end end
ao.[cita requerida]

Bucles

Caractersticas

Lua tiene tres tipos de bucles: el bucle while, el bucle for


y el bucle repeat.

Lua es un lenguaje de extensin, sucientemente compacto para usarse en diferentes plataformas. En lua las
variables no tienen tipo, slo los datos y pueden ser
lgicos, enteros, nmeros de coma otante o cadenas.
Estructuras de datos como vectores, conjuntos, tablas
hash, listas y registros pueden ser representadas utilizando la nica estructura de datos de Lua: la tabla.

El bucle while tiene esta sintaxis:


while (condicin) do -- Bloque end
El bucle for:
for indice = 1, 5 do print(indice) end

La semntica de Lua puede ser extendida y modicada


redeniendo funciones de las estructuras de datos utilizando metatablas, casi como en Perl. Lua ofrece soporte
para funciones de orden superior, recolector de basura.
Combinando todo lo anterior, es posible utilizar Lua en
programacin orientada a objetos.

Se repetira el cuerpo del bucle cinco veces, saliendo los


nmeros del 1 al 5 inclusive.
La otra forma del bucle for es:
local inicio, n, paso = 10, 1, 1 -- El paso puede ser
negativo, permitiendo al bucle for restar o sumar for
indice = inicio, n, paso do print(indice) end

Funcionamiento interno

El bucle repeat:

Los programas en Lua no son interpretados directamente,


sino compilados a cdigo bytecode, que es ejecutado en
la mquina virtual de Lua. El proceso de compilacin es
normalmente transparente al usuario y se realiza en tiempo de ejecucin, pero puede hacerse con anticipacin para aumentar el rendimiento y reducir el uso de la memoria
al prescindir del compilador.

local condicion = false repeat -- Bloque until condicion


Se ejecuta el cuerpo del bucle al menos una vez, y mantendra el bucle hasta que cond se convierta en true. Este
es muy similar al do while de otros lenguajes de programacin.
1

4 APLICACIONES

Aplicaciones

para servidores de Tibia y esto benecia al pblico en general que abre un servidor de Tibia.

Lua ha sido usado para procesar datos de entrada a


sistemas complejos, congurar aplicaciones, controlar
4.3
hardware y muchas otras cosas.[1]

En videojuegos

Debido a que Lua compilado es pequeo (en la mayora


En el gestor de ventanas Ion es posible utilizar Lua
de los casos), veloz y tiene una licencia permisiva ha gapara personalizar la apariencia y extender su funcionado seguidores entre los desarrolladores de videojuegos.
nalidad.
Empresas como VALVe, EA Games y Bethesda decidie El gestor de ventanas awesome en su versin 3 utiliza ron trasladar sus bases de C++ a Lua dado que este es
ms compatible grcamente con kernel. Algunos usos
Lua para su chero de conguracin.
de Lua:
Lenguages como ActionScript, Java, Lua y otros, son empleados en distintos sistemas operativos, lo cual consigue
un ahorro de costes, al simplicar el trabajo de desarrollo de un nuevo programa de software, al aadirlos como partes prefabricadas que incluso al adaptar o portar
el programa a nuevos usos, por ejemplo de plataformas
de videoconsolas a sistemas operativos como Android y
otros, no necesitan ser modicados o mnimamente, convirtindolo en un programa de software de calidad nuevo,
a un coste de desarrollo muy reducido.
Tambin Lua es uno de los lenguajes de programacin
ms utilizados para homebrews de la consola PSP de Sony
debido a su sencillez. Van desde aplicaciones para aadir
complementos u otros programas fcilmente a la consola a entornos de ventanas excelentes y videojuegos muy
completos.
Fue portado tambin para la Sega Saturn de la mano de
Rockin'-B, aunque no ha tenido tanta repercusin como
en la porttil de Sony.
Por otro lado es utilizado para los productos de la compaa canadiense desarrolladora de software Indigo Rose, en AutoPlay Media Studio; estos programas no fueron
desarrollados en Lua, sino que utilizan Lua para generar
y crear scripts, ya sea por un asistente o por la pericia del
programador.

4.1

Portabilidad

Gracias a su sencillez, Lua pudo ser portado a mltiples arquitecturas fcilmente. Lo ms sorprendente es
que existen ports para PSP y Wii, siendo por ahora el primer port el ms antiguo y exitoso, mientras que el de Wii
deriva de ste. Tambin est la versin de SEGA Saturn,
aunque no se asemeja tanto ya que usa libreras propias
de SEGA.

4.2

En Tibia.com o servidores

El Lua se puede implementar de muchas formas en el juego de rol RPG de Tibia siempre y cuando existan las funciones y acciones secundarias en tu consola, mucha gente
usa el lenguaje de Lua para hacer sistemas,scripts,mods

World of Warcraft, donde el usuario tiene la posibilidad de personalizar casi completamente la interfaz
grca.
Tambin en un mod de tipo sandbox para Half-Life
2 llamado Garrys Mod, pudiendo modicarlo casi
completamente. Gran parte de Garrys Mod est escrito en Lua.
Tambin en un mod para Half-Life 2 llamado
Fortress Forever que permite congurar altamente
los mapas.
El videojuego de estrategia en tiempo real a gran escala Supreme Commander, el cual es modicable por
el usuario en casi todos sus aspectos.
El videojuego de rol Tibia, modicable casi totalmente (poderes, mapas, etc) junto con XML.
Parte de S.T.A.L.K.E.R.: Shadow of Chernobyl, permitiendo al jugador modicar armas, armaduras y
aspectos varios del juego.
Grim Fandango y La Fuga de Monkey Island (cuarta
entrega de la saga Monkey Island) utilizan internamente scripts en Lua para denir la historia y los
eventos que ocurren durante la partida.
Worms 4: Mayhem utiliza Lua y XML para denir
las misiones y desafos.
Mediante un programa casero (o homebrew), el
LuaPlayer, permite ejecutar archivos .lua en la conocida consola porttil de Sony.
Ragnarok Online usa Lua para programar la inteligencia articial de los homnculos.
Regnum Online usa Lua para la mayora de scripts
del juego como interfaz, modo de juego, acciones,
tc.
TASpring un juego de estrategia en tiempo real, usa
Lua para la mayora de scripts del juego como interfaz, modo de juego, acciones, tc.

3
Multi Theft Auto: San Andreas usa Lua para disear
modos de juego, mapas y scripts. Este programa es
una modicacin multijugador que permite al usuario jugar Grand Theft Auto San Andreas en lnea
con otro usuario de computador a computador.
"Blitzkrieg". Se usa el lenguaje Lua en los editores
de mapas e incluso los puede escribir uno mismo.
"Counter-Strike 2D". Permite utilizar scripts Lua
para crear, por ejemplo, modos de juego completamente nuevos mediante una interfaz de hooks, tablas, variables y arrays
"StepMania". Se usa el lenguaje Lua para desarrollar la implementacin de animaciones del entorno
grco, y asimismo la ejecucin de comandos internos relacionados con la jugabilidad.
"Wolfenstein: Enemy Territory": Algunos modos de
este juego vienen con el lenguaje Lua para correr
scripts como mini-modos, scripts de administracin,
modicacin de mapas, etc.
Hedgewars: Utiliza Lua en los scripts, misiones y
mapas.
Minecraft: Se utiliza en el MOD ComputerCraft
(http://computercraft.info/wiki/Main_Page)
Minetest: Se utiliza en los MODS haciendo sencilla
la instalacin de modicaciones
Transformice utiliza Lua y XML para denir los
desafos y parte del diseo, como tambin se usa como una herramienta.
Railworks: Train Simulator: Se utiliza en los scripts
para modicar o denir el funcionamiento de los objetos.
YGOPro: Dueling System: Desde efectos de cartas
hasta la misma Inteligencia Articial utiliza este lenguaje.

Vase tambin
X10

Referencias

[1] Usos de Lua

Enlaces externos
Manual de Lua 5.1 (en espaol)
Sitio web ocial de Lua (en ingls)
LuaForge (en ingls)

8 TEXTO E IMGENES DE ORIGEN, COLABORADORES Y LICENCIAS

Texto e imgenes de origen, colaboradores y licencias

8.1

Texto

Lua Fuente: http://es.wikipedia.org/wiki/Lua?oldid=79950300 Colaboradores: Angus, Dodo, Dianai, Rcelis, Digigalos, Hari Seldon,
Rembiapo pohyiete (bot), Superzerocool, Chobot, Baito, BOT-Superzerocool, Oscar ., YurikBot, GermanX, CEM-bot, Pinar~eswiki,
Thijs!bot, JoaquinFerrero, Kirtash, Locovich, Kovan, JAnDbot, Arqeek, TXiKiBoT, Muimota, Kzman, Biasoli, Aibot, Mstreet linux, DJ
Nietzsche, Shooke, Muro Bot, SieBot, Loveless, Skiuv, Tirithel, Botelln, Alexbot, Angel GN, Bodhi-Baum, Luckas-bot, Nallimbot, Didoco, scarN, ArthurBot, SuperBraulio13, Almabot, Locobot, Obersachsebot, Xqbot, Plunchete, MauritsBot, Caritdf, RedBot, NEKERAFA, Enrique Cordero, Angelito7, KSEltar, Pyrowalker, EmausBot, Kakahuete, InseiRobin, KLBot, ChuispastonBot, Diamondland, Damn
Sentry Gonna, Seercrash, EmiduronteBot, KLBot2, AvocatoBot, Invadibot, John plaut, Jml3, LauraBot, Scaletta, Addbot, Pakozm, Jarould
y Annimos: 90

8.2

Imgenes

Archivo:Lua-logo-nolabel.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/6/6a/Lua-logo-nolabel.svg Licencia: Public domain Colaboradores: Transferido desde en.wikipedia a Commons por Qgil.
Artista original:
The original uploader was Criptych de Wikipedia en ingls

8.3

Licencia de contenido

Creative Commons Attribution-Share Alike 3.0

También podría gustarte