Tutorial sobre Lua – Parte 1

¿A quién va dirigido este simple tutorial?

Simplemente a quienes no sepan nada sobre un lenguaje de programación o tengan algún conocimiento pero limitado.
Debo dejar en claro que no es necesario usar GNU/Linux para programar en Lua, pero es una gran ventaja, además es una recomendación personal el de usar una distro GNU/Linux.
Quiero dejar en claro, que este pequeño tutorial es para ayudar a introducirse en el mundo de Lua, es una referencia práctica, sin embargo aunque ahora no lo puedas ver (sí, te hablo directamente a tí mi querido lector), programar requiere de un conocimiento que nace de un aprendizaje teórico y práctico. La práctica, nos da la herramienta para volcar nuestros conocimientos teóricos en la realidad, sin embargo, sin la teoría simplemente no somos capaces de programar.

¿Qué es Lua?

Lua es un lenguaje de programación y aquí es dónde empizan los problemas. Obviamente a esta altura todos tiene alguna idea, más o menos formada de lo que debe ser un lenguaje de programación. Pues bien, un lenguaje de programación se dice que es un lenguaje formal, un concepto que nace de las matemáticas.
En un lenguaje de programación” existen símbolos, los cuales se combinan de una forma que está especificada. Rescatemos este simple concepto, programar tiene una relación especial con las matemáticas… ¡No nos asustemos! En general muchos suelen escuchar la palabra matemáticas y salen corriendo. La matemática es una hermosa ciencia, madre de la gran mayoría que conocemos, no es ni fácil ni sencilla, así que olvidemonos de nuestras frustaciones pasadas.

Comenzemos

¿Para qué quiero programar?

Pregunta válida si las hay. Podríamos pensar que es la forma válida de controlar el comportamiento físico-lógico de una computadora. Evidentemente nos damos cuenta que cada interacción en nuestra vida diaria, en general, presenta alguna etapa en dónde aparace una computadora.
En principio, la primer motivación (que se ha tenido y se tiene) es la resolución de operaciones matemáticas. Así que mis primeros ejemplos serán enfocados a ello.

¿De dónde saco Lua?

Los ejecutables propiamente dichos puedes descargarlos directamente del sitio de Lua. Una segunda opción más que interesante para los que recién empienzan es usar la demo online, así entonces, desde tu browser puedes correr tus primeros códigos (programas) de Lua.

Tengo el archivo ejecutable ¿Ahora en dónde programo?

Bien, los archivos ejecutables/binarios son el interprete de Lua, puedes escribir directamente en el interprete de Lua o también puedes escribir tus programas usando cualquier editor de texto. Sí usas Windows puede ser el “Notepad”, en [GNU/Linux] tienes infinidades de editores, recomiendo fuertemente uno de los más sencillos y poderosos con los que se pueden encontrar y que es muliplataforma, o sea, viene versiones para muchos sistemas operativos:

  • Sí usas Windows puedes descargarlo de este link
  • En distros GNU/Linux deberás utilizar el método que ellas te habilitan para instalar software desde los repositorios oficiales, por ejemplo:
  • En debian/ubuntu: #apt-get install geany
  • En fedora: #yum install geany
    Es sólo una recomendación, no es necesario instalarlo, pero es una gran herramienta de trabajo.

Variables y operaciones

Lo básico

Pensemos en que queremos hacer una operación matemática simple, como sumar dos números. Entonces tenemos datos de entrada que son los números a sumar, un dato de salida, que es el resultado de la suma y la operación en sí, la suma.
Ahora es nuestro uso del lenguaje, los datos serán serán representados por variables. En un principio vamos a limitar los tipos de datos que pueden almacenar una variable, en números y cadenas de caracteres.
Volvamos al ejemplo de la suma de dos números, al primero lo vamos a almacenar en la una variable que llamaremos A, el segundo número será B y el resultado lo guardaremos en la variable C. Como se escribe esto, si queremos sumar 2 y 3:

 A = 2
 B = 3
 C = A + B

Sencillo ¿No? Pueden copiar el código anterior y pegarlo en el interprete online. Sí lo hacen, le dan al botón RUN y verán que no mostrará ningún resultado, sin embargo, aparecerá un cartel de Your program ran successfully, o sea, tu programa se ejecuto exitosamente. ¿Pero cómo? ¡Debería dar como resultado 5! Y aunque no lo creas esto es correcto, pero existe un pequeño detalle… Antes les mencione que cuando programamos controlamos el funcionamiento físico y lógico de la PC, así que necesitamos usar alguna operación que nos muestre el resultado. En este caso usaremos print, que en nuestro idioma quiere decir imprimir. En este caso va a imprimir el resultado en la pantalla:

 A = 2
 B = 3
 C = A + B
 print(C)

Sí ahora copian este código al interprete online, ¿Qué les aparece en la caja de texto que dice output? En efecto, sí todo copiaron bien, les debe aparecer un 5.

Avancemos un poco más, vamos a escribir otro pequeño código, ahora vamos a codificar una función lineal, o sea, la función de una recta. Recodemos que una recta es:

 y = m x + b

Supongamos que queremos codificar, por ejemplo, la siguiente recta:

 y = 3 x + 5

Entonces vamos a declarar una variable de entrada para nuestra operación, en este caso X y una variable que va a contener nuestro resultado Y. ¿Cómo lo escribimos? Bueno, supongamos que queremos conocer el valor de la recta cuando X vale 4:

 X = 4
 Y = 3 * X + 5
 print (Y)

En el interprete online el resultado que aparece es en efecto 17. Antes de seguir una sola aclaración, la operación de multiplicación se indica con el símbolo *, y la división con la /.
En lua y al utilizar cualquier lenguaje, algo que nos importa es mostrar/escribir mensajes que podemos interpretar fácilmente. Tratemos de modificar los ejemplos anteriores. Ahora cuando sumemos los números, queremos mostrar algunos mensajes a los usuarios de nuestros programas para que les resulte más sencillo utilizarlos. Vamos a mostrar dos mensajes, uno dónde indique que se van a sumar números y otro dónde indique el resultado de la operación:

 print("Vamos a sumar dos números")
 A = 2
 B = 3
 C = A + B
 print("El resultado es")
 print(C)

Una vez más al usar el interprete online tendremos el siguiente mensaje de salida:

 Vamos a sumar dos números
 El resultado es
 5

Avanzando sobre las variables

Es claro que necesitamos usar mensajes para indicar información, es indispensable. Ahora, en Lua podemos utilizar una variable tanto para almacenar números como mensajes o dicho de forma correcta “cadena de caracteres”, en definitiva texto.
Ahora bien, es importante que ahora razonemos lo siguiente, en el momento que almacenemos números en una variable, podremos aplicarles operaciones dirigidas a números. Cuando almacenemos texto podremos aplicarles operaciones destinadas a manipular texto. Vamos con un ejemplo:

 A = 5
 B = "5"
 print(A)
 print(B)

El resultado del interprete online es

 5
 5

¿Cuál es la diferencia? Claramente no se percibe de esta manera, pero ahora, volvamos al ejemplo de la suma:

 A = 5
 B = "5"
 C = A + 2
 D = B + 2
 print (C)
 print (D)

¿Cuál debería ser el resultado? Sí piensan que es:

 7
 7

¡Están en lo correcto! El maravilloso Lua a interpretado que, aunque están almacenando un texto en la variable B, el mismo es un número. Impresionante ¿No? Este es un caso particular, si el texto almacenado es un número, vamos a poder operarlo sin problemas.
Ahora propongo:

 A = 5
 B = "cinco"
 C = A + 2
 D = B + 2
 print (C)
 print (D)

Ahora en nuestro interprete online veremos un mensaje de error y que Your program failed to run, o sea, Tu programa fallo al ejecutarse. Mientras que el mensaje de salida dice:

 input:4: attempt to perform arithmetic on global 'B' (a string value)

Ahora comprendamos que nos dice el error. La primer parte input:4: nos indica en que número de línea del código existe un problema, en este caso si las contamos daremos con

 D = B + 2

En la segunda parte del mensaje attempt to perform arithmetic on global ‘B’ (a string value), o sea, Intenta hacer una operación aritmética sobre la variable globlal ‘B’ (contiene texto). Es lógico en cierta manera, la cadena “cinco” nos puede resultar un número para nosotros, pero al realizar operaciones matemáticas/aritméticas necesitamos utilizar los símbolos* que representan un número.

Conclusión

Hemos comenzado a transitar nuestras primeras aventuras en un lenguaje de programación y en especial con Lua como herramienta.
En esta primera parte, vimos algunas manipulaciones básicas y fuimos, muy de a poco, adentrándonos en el lenguaje.
Les recuerdo que este tutorial es destinado a un principiante, pensando en ayudar a la persona que no conoce sobre programación o tiene una idea muy primitiva. En lo personal uso Lua para muchas actividades, me resulta muy cómodo para resolver un gran número de problemas, también ¡Lo utilizo en mi trabajo!
Puede que muchos quieran aprender alguno de los cientos de lenguajes que hay, sin embargo son pocos los lenguajes que permiten de forma tan sencilla, elegante, rápida y potente programar. Les repito, quiero ayudar a transmitir la parte “práctica” de programar en este lenguaje, es imperativo estudiar los conceptos teóricos para poder comprender como programar, sin ellos, esto es lo mismo que un taladro eléctrico sin estar enchufado a la red eléctrica, no van a llegar muy lejos…

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s