Lenguaje Lua
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.
Interesante Muy bueno Una alternativa para aprender lo checare