Lua es un lenguaje de programación muy sencillo de aprender, sobre todo, si es tu primera vez programando. Esto se debe a que Lua necesita menos líneas de código para que funcione, lo cual es diferente con otros tipos de lenguajes de programación como Python, Java o C++. Además, Lua pertenece a la categoría de lenguaje de programación de bajo nivel.
Si bien este lenguaje de programación fue creado en 1993 en Brasil, hoy se ha hecho muy popular por los beneficios que ofrece en relación a su facilidad para aprenderlo y aplicarlo.
Además, su enorme simplicidad ha ido evolucionando hasta lo que es hoy: un lenguaje de programación que se utiliza para diversas áreas como en la creación de videojuegos, la robótica y el desarrollo de aplicaciones de escritorio.
Otro de los grandes beneficios del lenguaje de programación Lua es que se encuentra disponible para todos los sistemas operativos más comunes como Windows, Linux e Mac OS.
El lenguaje de programación Lua se usa para la programación procedimental general. Por lo tanto, dentro de los paradigmas de programación, es considerado perteneciente a los lenguajes de scripting imperativos. Se implementa como una biblioteca en C y ofrece funciones como el código Lua y un programa host de muestra (llamado lua), que proporciona un intérprete de Lua independiente.
Como lenguaje de scripting, Lua no tiene su propio programa principal. Solo funciona integrado en una aplicación host, que puede llamar las funciones mencionadas anteriormente a través del código Lua. Gracias a la función C, Lua se puede extender mediante numerosas funciones para cubrir los igualmente numerosos requisitos de programación. Este lenguaje de programación se puede adaptar muy fácilmente, de modo que se garantiza un framework sintáctico común.
Si ya tienes conocimientos de Pascal, no tendrás problema con la sintaxis de Lua, porque ambos lenguajes de programación son muy similares en este punto: es posible separar varios comandos en una línea de script con un punto y coma. Lua tiene un total de 20 palabras clave definidas que son fáciles de aprender. Para que te hagas una idea, Lua suele utilizar bloques de funciones que comienzan con palabras clave como goto y terminan con palabras como end, elseif o else. La palabra clave local identifica variables locales que solo son válidas para el bloque de funciones en el que aparece. Los bloques de funciones también pueden anidarse entre si.
Lua puede trabajar con los siguientes tipos de datos: table, userdata, function, thread, nil, boolean, string y number. De esta lista, solo el primer tipo de datos mencionado, table (tabla en español), es estructurado. Los tipos de datos variables se determinan durante la ejecución del script, pero se pueden convertir en cualquier momento si es necesario.
Funcionamiento interno
Los programas en Lua no son interpretados directamente, sino compilados 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:
También puede ser escrito como
io.write('Hello World!\n')
o el ejemplo dado en el Website de Lua
io.write("Hello world, from ",_VERSION,"!\n")
Los comentarios usan la siguiente sintaxis, similar a , SQLy 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
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.