Lua es un lenguaje de programación imperativo, estructurado y bastante ligero que fue diseñado como un lenguaje interpretado con una semánticaextendible. El nombre significa «luna» en portugués.

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.

CARACTERÍSTICAS

Lua es un lenguaje de extensión, suficientemente compacto para usarse en diferentes plataformas. En lua las variables no tienen tipo, sólo losdatos y pueden ser lógicos, enteros, números de coma flotante o cadenas. Estructuras de datos como vectores, conjuntos, tablas hash, listas yregistros pueden ser representadas utilizando la única estructura de datos de Lua: la tabla.

La semántica de Lua puede ser extendida y modificada redefiniendo 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 enprogramación orientada a objetos.

FUNCIONAMIENTO

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 siguente manera:

print("Hola mundo!")

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
   else
      return n * factorial(n - 1)
   end
end
Bucles

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

El bucle while tiene esta sintaxis:

while (condición) do
   -- Bloque
end

El bucle for:

for indice = 1, 5 do
   print(indice)
end

Se repetiría el cuerpo del bucle cinco veces, saliendo los números del 1 al 5 inclusive.

La otra forma del bucle for es:

local inicio, fin, paso = 10, 1, -1 -- El paso puede ser negativo, permitiendo al bucle for restar o sumar
for indice = inicio, fin, paso do
   print(indice)
end

El bucle repeat:

local condicion = false
repeat
   -- Bloque
until condicion

Se ejecuta el cuerpo del bucle al menos una vez, y mantendría el bucle hasta que “cond” se convierta en true.

APLICACIONES

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

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

Lenguages 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 minimamente, 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.

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.

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.


Gracias por apoyar el libre conocimiento con tu donación!
Bitcoin: bc1q4sw9260twfcxatj8mjp7358cyvrf8whzlelyhj
Ethereum: 0xFb93D2a3c9d1A0b83EE629c2dE1725BCa192e581
Litecoin: LbFduJmHvQXcpCnwfUT7aJ4DYoWSL3iQw8
Dogecoin: D7QQVqNR5rk215A4zd2gyzV9P2bLQtZHFV
Transferencia bancaria en México:
Cuenta CLABE: 661610005838513425 Nombre: Masterhacks LATAM Banco: Alternativos

Unete a nuestros grupos:
WhatsApp: https://chat.whatsapp.com/HcazyklpyeU4X3BF657KFQ
Telegram: https://t.me/masterhacks_net
Canal de WhatsApp https://whatsapp.com/channel/0029VaBBLCn5vKAH9NOWCl3K

1 pensamiento sobre “Lenguaje Lua

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *