Compendio Comandos / Instrucciones [LUA]

Introduccion:

Como todos sabrán existe un lenguaje llamado LUA el cual se usa mucho para realizar programas homebrew para PSP, pues bien, existe mucha gente como yo, que no tenemos ni idea de LUA, no por n osaber programar, sino por no saber como se estructura su lenguaje ni cuáles son los comandos principales y más simples para empezar a programar.

A continuación realizaré una especie de compendio en el cual se expondrán las funciones para empezar en este lenguaje.



·Variables:

Aquí vemos las diferentes formas en que se puede asignar un “tipo” a una variable.

a = "Ejemplo" -- a almacena string ( o cadena)

b = 1.23 -- b almacena número...

b = nil -- b almacena nil

a = 3 -- a almacena número

Nota: Algo que esté comentado en LUA se pone como “- - “ ( sin las comillas ).


·Variables Locales o Globales:


Cuando se definen las variables, el programa toma directamente ésta como si fuera e ámbito Global, para que la variable mencionada sea de tipo Local, se deberá definir como tal antes de la misma, Ejemplo:

Local a
...

a = 3




·Los valores en LUA pueden ser de diversos tipos, éstos son:

nil: Los valores “nil” indican la ausencia de valor, es decir valor nulo. También es interpretado como valor Booleano “False”.

Boolean: Valor Booleano, pudiendo ser “False” o “True”.

Number: valor numérico. No diferencia entre valor Entero y valor Real, solo existe un tipo para representar los números.

String: valor cadena de caracteres. Una constante string puede ser delimitada por comillas simples ( ‘...‘ )ó por comillas dobles ( “...” ) ó por doble corchetes ( [[...]] ).

Table: Vector asociativo.

Function: función escrita en LUA o escrita en C registrada en LUA.

Userdata: dato de host, representado pro un puntero void*;

Thread: Línea de ejecución.


·Operadores y controladores de Flujo:

El lenguaje LUA ofrece las los operadores comunes encontrados en cualquier lenguaje de programación. Los operadores aritméticos son los usuales:

+ ( suma )
- ( resta )
* ( multiplicación )
/ ( división )
^ ( potencia )
- ( negación )


El resultado de las operaciones son valores de tipo Booleano e incluyen:

> ( mayor que... )
< ( menor que... )
>= ( mayor o igual que... )
<= ( menor o igual que... )
== ( igual que... ) [ es más bien una comparación]
~= ( diferente que... ) [ej. mientras sea diferente a "True”]


Los operadores lógicos, sirven para combinar los valores boléanos y son dados por:

And ( y )

Or ( ó )

Not ( negación )

“. .” Operador para concatenar string. (sin comillas)


Ejemplo:


“ Expresión:“

x = v or w

y = a and b or c

La primera expresión indica que “x” tomará el valor de V, siempre y cuando ésta sea verdadera, en caso contrario será asignada W.

En la segunda expresión, debería ser leída de la siguiente forma: y = a ? b : c, en C, desde que b no resulte falso


El lenguaje LUA ofrece los controles de flujo comunes en los lenguajes que le preceden. Las construcciones tomadas para la instrucción son las variantes usuales de:

“ If ... then ...else: “


If expresión then

...

end


end


If expresión then
...

else

...

end


If expresión then

...

else if expresión2 then

...

else

...

end

“While... ó repeat... ”

Las construcciones para ejecuciones iterativas pueden ser de tipo no inicio ( while ) o no fin ( repeat )

While expresión do

...

end



repeat

...

until expresión


En la expresión de “repeat” cabe destacar que la iteración se hará como mínimo una vez.

“for...”

LUA ofrece también la construcción de lazos con “for”. Los “for” numéricos tienen siempre la siguiente forma:

For var = expr_inicial, expr_final, expr_incremento do

...

end


En esta función, la variable “var” será automáticamente tomada como variable de tipo local. Las expresiones inicial, final e incremento son estimadas una única vez antes del inicio de la ejecución del bloque. Si el valor de la expresión incremento es omitido, se tomará siempre el valor de 1.


Un for puede ser usado en la construcción de distintos tipos de iterados especializados. Un ejemplo sería el uso que le damos a continuación, en el cual usamos un “for” genérico para Leer e Imprimir cada línea de archivo de la entrada de corriente, usando funciones pre-definidas en la biblioteca de entrada y salida.

For line in io.lines() do

io.write(line,"\n")

end

La función realizaría lo siguiente. Primero comprobaría que existe datos en el fichero, es decir, que io.lines() ==false, con lo cual, si no lo es, ejecuta la línea siguiente, la cual coge la siguiente parte del archivo pedido, lo guarda en la variable “Line”, la línea se cogerá hasta que ésta sea final de línea, indicado por el parámetro “\n”






*******************************************************
Enlaces de Interés:

Manual LUA [Website]: Aquí

Directorio de Tutoriales [Website Wiki]: Aquí




Última Actualización: 25.Agosto.07

_______________________________________________________


El Compendio aún no está terminado, esto es solo la punta del icerberg.

Me gustaría que la gente que entienda algo de LUA me ayudara a realizar una tarea tan larga, pues me estoy fijando de un manual que he encontrado por internet, está escrito en Portugues o Brasileño, no lo se aun, y la verdad es un coñazo traducir y realizar las cosas, para mi entender, que se simplifique y se entiedan (valga la redundancia) mejor.

Enlace del manual en Portugues/Brasileño:
>> Aquí <<



[QUOTE]
Agradecimientos:

Waldemar Celes
Luiz Henrique de Figueiredo
Roberto Ierusalimschy

Wordreference por su ayuda a traducir xD
Yo cuando lo descargue no sabia como ejecutarlo, me salen 4 carpetas con colores jajaja

Y por cierto, los brasileros hablan portugues xD
jaja vale xD no estaba seguro, aunque es un dato relevante xDD


salu2!
2 respuestas