0% encontró este documento útil (0 votos)
143 vistas5 páginas

Introducción al Lenguaje de Programación Lua

Lua es un lenguaje de programación dinámico, ligero y multiparadigma creado en 1993. Es ampliamente usado en videojuegos, aplicaciones y servidores debido a su portabilidad y facilidad de extensión. Lua compila código a bytecode para ejecutarlo en su máquina virtual. Algunos de sus usos notables incluyen World of Warcraft, Garry's Mod, CryEngine y Tibia.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
143 vistas5 páginas

Introducción al Lenguaje de Programación Lua

Lua es un lenguaje de programación dinámico, ligero y multiparadigma creado en 1993. Es ampliamente usado en videojuegos, aplicaciones y servidores debido a su portabilidad y facilidad de extensión. Lua compila código a bytecode para ejecutarlo en su máquina virtual. Algunos de sus usos notables incluyen World of Warcraft, Garry's Mod, CryEngine y Tibia.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

Lua

Ir a la navegaci�nIr a la b�squeda
No debe confundirse con L�a.
Lua
[Link]
Roberto Ierusalimschy
[Link] y [Link]
Informaci�n general
Extensiones comunes .lua
Paradigma Multiparadigma:
interpretado,
imperativo
(procedural,
basado en prototipos,
orientado a objetos),
funcional
Apareci� en 1993
Dise�ado por Roberto Ierusalimschy
Waldemar Celes
Luiz Henrique de Figueiredo
�ltima versi�n estable 5.3.51? (10 de julio de 2018)
Sistema de tipos din�mico, fuerte, duck
Implementaciones Lua, LuaJIT, LLVM-Lua, LuaCLR, Nua, Lua Alchemy
Dialectos Metalua
Influido por Scheme, SNOBOL, Modula, CLU, C++
Ha influido a Io, GameMonkey, Squirrel, Falcon, Dao, MiniD
Sistema operativo Multiplataforma
Licencia MIT License
[editar datos en Wikidata]
Lua es un lenguaje de programaci�n imperativo, estructurado y bastante ligero que
fue dise�ado como un lenguaje interpretado con una sem�ntica extendible. El nombre
significa �luna� en portugu�s.

�ndice
1 Historia
2 Caracter�sticas
3 Funcionamiento interno
3.1 C�digos de ejemplo
3.2 Bucles
4 Aplicaciones
4.1 Portabilidad
4.2 En [Link] o servidores
4.3 En videojuegos
5 V�ase tambi�n
6 Referencias
7 Enlaces externos
Historia
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
Tecnolog�a en Computaci�n Gr�fica (Tecgraf) en la Pontificia Universidad Cat�lica
de R�o de Janeiro. Las versiones de Lua anteriores a la 5.0 fueron distribuidas
bajo una licencia similar a la BSD, de la versi�n 5.0 en adelante se utiliza la
licencia MIT, compatible con la GPL.

Lua ha sido usado en muchas aplicaciones comerciales y no comerciales, cuyo n�mero


incrementa cada a�o.[cita requerida]

Caracter�sticas
Lua es un lenguaje de programaci�n suficientemente compacto para usarse en
diferentes plataformas. En Lua las variables no tienen tipo, s�lo los datos y
pueden ser l�gicos, enteros, n�meros de coma flotante 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.

Lua es un lenguaje multiparadigma porque su sem�ntica puede ser extendida y


modificada redefiniendo funciones de las estructuras de datos utilizando
metatablas, casi como en Perl (as� permite implementar, por ejemplo, la herencia
aunque sea ajena al lenguaje). Lua ofrece soporte para funciones de orden superior,
recolector de basura. Combinando todo lo anterior, es posible utilizar Lua en
programaci�n orientada a objetos.

Funcionamiento interno
Los programas en Lua no son interpretados directamente, sino compilados a c�digo
bytecode, que es ejecutado en la m�quina virtual de Lua. El proceso de compilaci�n
es normalmente transparente al usuario y se realiza en tiempo de ejecuci�n, pero
puede hacerse con anticipaci�n para aumentar el rendimiento y reducir el uso de la
memoria al prescindir del compilador.

Tambi�n es posible la compilaci�n en tiempo de ejecuci�n utilizando LuaJIT.

C�digos de ejemplo
El cl�sico programa Hola mundo puede ser escrito de la siguiente manera:

print("Hola mundo!")
Tambi�n puede ser escrito como

[Link]('Hello World!\n')
o el ejemplo dado en el Website de Lua

[Link]("Hello world, from ",_VERSION,"!\n")


Los comentarios usan la siguiente sintaxis, similar a Ada, SQL y VHDL

-- Un comentario en Lua empieza con doble guion hasta la siguiente l�nea


--[[ Los strings y comentarios multil�nea
se adornan con doble corchete]]
El factorial es un ejemplo de funci�n recursiva.

function factorial(n)
if n == 0 then
return 1 end
return n * factorial(n - 1)
end
Bucles
Lua tiene cuatro tipos de bucles: el bucle while, el bucle for num�rico y gen�rico
y el bucle repeat.

El bucle while tiene esta sintaxis:

while (condici�n) do
-- Bloque
end
La forma del bucle for num�rico es:

local inicio, fin, paso = 10, 1, -1 -- El paso puede ser negativo, permitiendo al
bucle for restar o sumar
for �ndice = inicio, fin, paso do
print(�ndice)
end
Otra forma del bucle for es el for gen�rico:

for clave, valor in pairs(_G) do


print(clave)
end
Esta forma itera la tabla _G usando el iterador est�ndar pairs hasta que retorne

nil
El bucle repeat:

local condici�n = false


repeat
-- Bloque
until condici�n
Se ejecuta el cuerpo del bucle al menos una vez, y mantendr�a el bucle hasta que
�cond� se convierta en true. Este es muy similar al do while de otros lenguajes de
programaci�n, salvo que do while se repite mientras cumpla la condici�n y en este
caso, se repetir� hasta que se cumpla la condici�n.

Aplicaciones
Lua ha sido usado para procesar datos de entrada a sistemas complejos, configurar
aplicaciones, controlar hardware y muchas otras cosas.2?

En el gestor de ventanas Ion es posible utilizar Lua para personalizar la


apariencia y extender su funcionalidad.
El gestor de ventanas awesome en su versi�n 3 utiliza Lua para su fichero de
configuraci�n.
Lenguajes como ActionScript, Java, Lua y otros, son empleados en distintos sistemas
operativos, lo cual consigue un ahorro de costes, al simplificar el trabajo de
desarrollo de un nuevo programa de software, al a�adirlos 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 modificados o m�nimamente, convirti�ndolo en un programa de
software de calidad nuevo, a un coste de desarrollo muy reducido.

Tambi�n Lua es uno de los lenguajes de programaci�n m�s utilizados para homebrews
de la consola PSP de Sony debido a su sencillez. Van desde aplicaciones para a�adir
complementos u otros programas f�cilmente a la consola a entornos de ventanas
excelentes y videojuegos muy completos.

Fue portado tambi�n para la Sega Saturn de la mano de Rockin'-B, aunque no ha


tenido tanta repercusi�n como en la port�til de Sony.

Por otro lado es utilizado para los productos de la compa��a 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.

Renoise es un DAW de nicho basado en C++ que, en sus �ltimas versiones, ofrece la
posibilidad de usar el c�digo Lua para extender sus capacidades. De este modo,
cualquier usuario con conocimientos del lenguaje Lua y de la propia API disponible
de Renoise puede expandir las funcionalidades de este programa a�adiendo nuevas
funciones espec�ficas, disparadas desde los propios men�s desplegables o incluso
creando ventanas flotantes con interfaz gr�fica propia, combinando Lua con la
compatibilidad OSC y la entrada/salida MIDI. Todo este conjunto permite una
personalizaci�n adicional casi ilimitada de este programa. Incluso Renoise dispone
de un terminal propio para editar y ejecutar el c�digo Lua, facilitando enormemente
la b�squeda de errores en el c�digo.
Portabilidad
Gracias a su sencillez, Lua pudo ser portado a m�ltiples arquitecturas f�cilmente.
Lo m�s sorprendente es que existen ports para PSP y Wii, siendo por ahora el primer
port el m�s antiguo y exitoso, mientras que el de Wii deriva de �ste. Tambi�n est�
la versi�n de SEGA Saturn, aunque no se asemeja tanto ya que usa librer�as propias
de SEGA.

En [Link] 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 para servidores de
Tibia y esto beneficia al p�blico en general que abre un servidor de Tibia.

En videojuegos
Debido a que Lua compilado es peque�o (en la mayor�a de los casos), veloz y tiene
una licencia permisiva ha ganado seguidores entre los desarrolladores de
videojuegos. El motor gr�fico de Crytek, CryEngine, est� programado en Lua, adem�s
de en C++. Empresas como VALVe, EA Games y Bethesda decidieron trasladar sus bases
de C++ a Lua dado que este es m�s compatible gr�ficamente con kernel. Algunos usos
de Lua:

World of Warcraft, donde el usuario tiene la posibilidad de personalizar casi


completamente la interfaz gr�fica.
Tambi�n en un mod de tipo sandbox para Half-Life 2 llamado Garry's Mod, pudiendo
modificarlo casi completamente. Gran parte de Garry's Mod est� escrito en Lua.
Tambi�n en un mod para Half-Life 2 llamado Fortress Forever que permite configurar
altamente los mapas.
El videojuego de estrategia en tiempo real a gran escala Supreme Commander, el cual
es modificable por el usuario en casi todos sus aspectos.
El videojuego de rol Tibia, modificable casi totalmente (poderes, mapas, etc) junto
con XML.
Parte de S.T.A.L.K.E.R.: Shadow of Chernobyl, permitiendo al jugador modificar
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 definir la historia y los eventos que
ocurren durante la partida.
Worms 4: Mayhem utiliza Lua y XML para definir las misiones y desaf�os.
Mediante un programa casero (o homebrew), el LuaPlayer, permite ejecutar
archivos .lua en la conocida consola port�til de Sony.
Ragnarok Online usa Lua para programar la inteligencia artificial de los
hom�nculos.
Regnum Online usa Lua para la mayor�a de scripts del juego como interfaz, modo de
juego, acciones, �tc.
TASpring un juego de estrategia en tiempo real, usa Lua para la mayor�a de scripts
del juego como interfaz, modo de juego, acciones, �tc.
Multi Theft Auto: San Andreas usa Lua para dise�ar modos de juego, mapas y scripts.
Este programa es una modificaci�n multijugador que permite al usuario jugar Grand
Theft Auto San Andreas en l�nea 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 implementaci�n de
animaciones del entorno gr�fico, y asimismo la ejecuci�n 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 administraci�n, modificaci�n de
mapas, etc.
Hedgewars: Utiliza Lua en los scripts, misiones y mapas.
Transformice utiliza Lua y XML para definir los desaf�os y parte del dise�o, como
tambi�n se usa como una herramienta, en este caso, LUA para la construcci�n de
minijuegos y XML para la construcci�n de mapas.
Railworks: Train Simulator: Se utiliza en los scripts para modificar o definir el
funcionamiento de los objetos.
YGOPro: Dueling System: Desde efectos de cartas hasta la misma Inteligencia
Artificial utiliza este lenguaje.
The Binding of Isaac: Rebirth : En enero de 2017 se public� su �ltimo DLC
Afterbirth+, en el mismo se a�adi� el soporte para Mods programados con este
lenguaje.
Factorio: Utiliza este lenguaje (LUA) como base y para implementar mods al juego.
Roblox: Utiliza un lua modificado conocido como [Link]

También podría gustarte