Cargando



Primeros pasos con Lua

En este tutorial daremos nuestros primeros pasos con el lenguaje de programación Lua, veremos cómo realizar su instalación, sus características principales, convenciones, el intérprete del lenguaje y algunos ejemplos sencillos para demostrar el funcionamiento del lenguaje.


may 07 2015 02:24
Profesional
may 07 2015 09:13
Lua es un lenguaje interpretado, simple, portable y extensible que fue creado originalmente para ser integrado con C y otros lenguajes convencionales, sin embargo el mismo ha extendido su uso hacia aplicaciones web, aplicaciones móviles, servicios web e incluso videojuegos.

El mismo utiliza el API de C para realizar ciertas tareas que van desde operaciones de bajo nivel, rendimiento e interfaces con programas de tercero. Lua además brilla por sí solo, el mismo permite trabajar con estructuras dinámicas, elimina redundancias, permite el manejo automático de la memoria y brinda la facilidad para realizar pruebas y debugging.

Lua además sirve como un lenguaje “pegamento” por llamarlo de algún modo, ya que este posee un componente para el desarrollo de software enfocado en la creación de aplicaciones usando componentes de alto nivel que son escritos y compilados en lenguajes como C o C++.

Características de Lua


Ya sabemos un poco más de Lua, pero con todos lenguajes de programación disponibles en la actualidad y que tienen el mismo propósito, muchos pueden estar pensando, ¿Por qué escogería Lua por sobre los demás? Pero la verdad es que Lua posee una serie de características que lo hacen destacar por sobre los demás, veamos:

Extensibilidad
La extensibilidad de Lua es tal que muchos desarrolladores lo consideran no como un lenguaje sino como una caja de herramientas para la construcción de lenguajes específicos. Lua fue diseñado desde cero para ser extendido a través de su propio código y del mismo por igual, donde una prueba de esto es que Lua implementa la mayoría de su funcionalidad básica a través de librerías externas. La integración de Lua con C/C++ es sumamente sencilla y el mismo ha sido utilizado en conjunto con otros lenguajes como Fortrand, Java, C# e incluso con otros lenguajes interpretados como Ruby y Perl.

Simplicidad
Lua es un lenguaje simple y pequeño que tiene pocos conceptos, con una documentación amplia y siendo muy fácil de aprender debido a su simplicidad.

Eficiencia
La implementación es sumamente eficiente y estudios realizados muestran a Lua como uno de los lenguajes interpretados más rápidos de la actualidad.

Portabilidad
Por último, cuando hablamos de portabilidad no hablamos solamente de que Lua pueda ser ejecutado tanto en Windows como en Linux, estamos hablando de que el mismo corra en todas las plataformas que conocemos: Mac, OS X, Symbian OS, PlayStation, Xbox, procesadores ARM y por supuesto todos los sabores de Unix y Windows. El código para todas estas plataformas es prácticamente el mismo y Lua no utiliza la compilación condicional, en vez el mismo se apega al compilador ANSI C, de esta forma no hay necesidad de adaptarlo a un nuevo entorno.

Como vemos Lua posee ciertas características que lo hacen destacar por sobre otros lenguajes interpretados. Ya tenemos un panorama más amplio del lenguaje, veamos entonces como instalarlo y de que manera hacemos un ejemplo sencillo.

Instalación de Lua


Para este tutorial vamos a realizar la instalación de Lua en Ubuntu para simplificar los pasos y el uso de la misma. Primero abrimos nuestra terminal y vamos a ejecutar el siguiente comando:
sudo apt-get install lua5.2
Con esto ya tendremos la última versión del lenguaje y ya podemos empezar a desarrollar con el mismo, como vemos fue bastante sencillo de instalar, comprobando así su característica de simplicidad. Ahora vamos a crear un pequeño archivo llamado hola_mundo.lua que tendrá el siguiente código:
print("Hola Mundo, Lua se instalo sin ningun problema")
Nos dirigimos a nuestra terminal a la ruta done hemos creado el archivo y vamos a ejecutar el mismo para verificar que tenemos Lua instalado sin problemas, para ello solo utilizamos la palabra reservada lua y el nombre del archivo, veamos cual es la salida de nuestro programa:

primeros-pasos-lua.jpg


Veamos un ejemplo más complejo que permitirá a un usuario introducir data y con una función calcularemos el factorial de un número:
function factorial (n)

if n == 0 then

return 1

else

return n * factorial(n-1)

end

end

print("Introduzca un numero:")

a = io.read("*number")

print(factorial(a))
Vamos a ejecutar nuestro código desde la terminal y ver su funcionamiento:

primeros-pasos-lua-2.jpg


Ingresamos varios números obteniendo así él factorial de cada uno de ellos, y esto con unas simples líneas de código. Ya verificamos que Lua está correctamente instalado y que podemos ejecutar nuestros programas sin ningún problema, sin embargo existen algunos conceptos del lenguaje que debemos saber antes de continuar con su aprendizaje.

Chunks o porciones


Cada pieza de código que Lua ejecuta, como un archivo o una línea es llamado chunk o porción, donde no es más que una secuencia de comandos o sentencias. La particularidad de Lua es que el mismo no necesita separadores entre las sentencias, pero podemos usar el famoso punto y coma si lo deseamos.

Recomendamos usar el punto y coma para separar dos sentencias que se encuentran en la misma línea para mantener cierto orden en el código y legibilidad. Es importante mencionar que el salto de línea de Lua es inexistente, para ver cómo funciona lo antes descrito veamos el siguiente ejemplo donde cada porción es igualmente valida:

primeros-pasos-lua-3.jpg


Podemos ver que incluso la última línea no cumple con ninguna convención, pero es totalmente válida y funcional en el lenguaje. Adicionalmente, las porciones las podemos ejecutar línea por línea en vez de crear un archivo mediante la consola interactiva de Lua, donde con colocar la palabra reservada lua sin argumentos podemos ingresar a la misma, veamos:

primeros-pasos-lua-4.jpg


Como vemos ejecutamos nuestro print sin necesidad de crear un archivo, incluso Lua es capaz de detectar cuando una línea no es una porción valida y nos da otro input para agregar el resto, pero de nuevo muchos se estarán preguntando: ¿De qué nos sirve ejecutar línea por línea si podemos crear un archivo y hacerlo en un solo paso? La respuesta son dos palabras; pruebas y debug, mediante la consola interactiva estos procesos son sumamente sencillos y prácticos. Vamos entonces a crear un pequeño programa y con la consola interactiva vamos a evaluar cada porción del mismo, veamos el contenido del mismo:
function norma (x, y)

return (x^2 + y^2)^0.5

end

function doble (x)

return 2*x

end
Ahora para acceder a la consola interactiva y poder hacer debug de nuestro programa debemos colocar lo siguiente:
lua -i prueba.lua
La consola interactiva abrirá y podremos evaluar nuestro programa, para ello utilizaremos la función dofile() que se encarga de cargar nuestro código y luego podemos enviar los argumentos a nuestras funciones y ejecutarlas, veamos como logramos esto:

primeros-pasos-lua-5.jpg


Como vimos pudimos probar nuestro código sin ningún problema, esto es bastante útil cuando tenemos un código bastante extenso con errores y no sabemos dónde se encuentran.

Convenciones


Ya pasamos por una serie de conceptos útiles para ejecutar nuestros programas y realizar pruebas a los mismos en caso de errores, pero para disminuir estos los mismos es necesario saber algunas convenciones en cuanto a que palabras reservadas no podemos utilizar o incluso como llamar a nuestras variables o identificadores.

Para este último puede ser cualquier cadena compuesta de letras, números y underscores, cuidando que no se empiece con un número, por ejemplo:
  • identificador
  • identificador2
  • unaVariableMuyLarga
  • _identificador
  • _ENTRADADATOS
Adicionalmente tenemos las siguientes palabras reservadas que no podemos utilizar para nombrar nuestros identificadores:

primeros-pasos-lua-6.jpg


Es importante mencionar que Lua es sensible a mayúsculas por lo que repeat es diferente a REPEAT, algo a tener en cuenta al momento de desarrollar con el lenguaje. Por último, para realizar comentarios con incluir el doble guion tenemos para una línea, y si queremos incluir un bloque de comentarios los encerramos con corchetes como podemos ver en el siguiente porción de código:
--[[

print("Hola mundo")

--]]
Y si queremos desactivar ese comentario con incluir un guion adicional al comienzo del mismo tenemos:

primeros-pasos-lua-7.jpg


Variables globales


Para finalizar tenemos las variables globales, las cuales no necesitan ser declaradas solo con realizar la asignación de los valores a las mismas podemos crearlas y en el caso que accedamos a estas antes de haberlas creada obtendremos el valor nil que indica que es un valor diferente a los demás, que incluso nos sirve para eliminar dicha variable al momento de su asignación, veamos un ejemplo de esto:

primeros-pasos-lua-8.jpg


Como vemos la simplicidad de Lua se extiende a cada aspecto del lenguaje, incluso con las declaraciones de nuestras variables. Con esto finalizamos este tutorial, donde pudimos dar nuestros primeros pasos con Lua, demostrando el poder del lenguaje y lo fácil de su uso, dándonos una alternativa al catálogo tan extenso de lenguajes interpretados para el desarrollo de nuestras aplicaciones.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X