LUA - Complemento multiplataforma - ¿Que es?

Tus experiencias con la informática, o fuera de la informática
Responder
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

LUA - Complemento multiplataforma - ¿Que es?

Mensaje por BasicOs »

Si necesitas hacer alguna función o herramientas personalizadas para tu Script más cómodo, o algún módulo en otra plataforma que no está en Autoit y si te apetece ampliar horizontes te presento EL LUA. Wikipedia LUA
He MARCADO con LUA - la entrada para tenerlas agrupadas para tenerlas más facil y si se genera una respuesta de los Autoiters, por favor, crear entradas para LUA de esta manera. El saber otro lenguaje no ocupa lugar, espero que mostreis algunos usos que haceis con LUA.

La inspiración me ha venido del foro autoit alemán que tienen un subforo dentro del subforo Scripts (Programas) dedicado a LUA creado por BugFix:
http://translate.google.com/translate?h ... 8d92792660

También se llaman Scripts:
Hola mundo:
if mivariable == true then
print("Hola mundo!")
print ("es Verdadero")
end
print("¿Cómo te llamas?")
-- lee del teclado
nombre = io.read()
-- Llamada a una función para mostrar el nombre:
diHola(nombre)

function diHola(persona)
-- Un bucle:
for i=1,3 do
print("Hola " .. persona .. "!")
end
end
En C + + un ejemplo

Fuente
cout <<"Escriba algo aquí"
cin>> variable
cout <<variables

en el lua se vería algo parecido a esto:
Fuente
print("Escriba algo que uno")
variable = entradatexto
print(variable)
Para que nos sirve esto?
  • Si necesitas hacer un cliente de una aplicación en Autoit. para Linux, Mac, otros OS, para varios usos (e.g. base de datos, TCP/IP, etcc). Si no quieres usar php o Html, para acceder a tus datos del servidor, y quieres en un ejecutable.
  • Configurar aplicaciones que lo usen como SCITE, mira en tu carpeta AutoitPortable\App\SciTE\LUA o en\ AutoIt3\SciTE \Lua\AutoItTools.lua y verás como está hecho el intelissense, y otras funciones del SCITE, con SCITE puedes hacer código LUA.
  • Interface a otra aplicación, o acceder a un HARDWARE,
  • No te gusta el C o si te gusta quieres enlazarlo Como ejecutar lenguaje Lua dentro de C
  • PSP Un programita para la PSP (PlayStation Portable)
    Otro programita para la PSP
  • Para ejecutar funciones lua desde Autoit crear un interface: el conjunto de funciones C disponibles para que el programa anfitrión se comunique con Lua: http://www.lua.org/manual/5.1/es/manual.html#3
  • Otras aplicaciones aparte de Scite que usan LUA para configurarse: http://lua-users.org/wiki/LuaUses
Como aprender:
Es un aprendizaje sin dolor

Realmente no hace falta aprender ya que es similar a un estilo Basic, con lo que en minutos podemos empezar a hacer nuestra aplicaciones. No necesitaremos mirarlo pero aquí hay un manual: http://www.lua.org/manual/5.1/es/ .
Recomiendo usar ejemplos ya que ya sabemos crear algoritmos y programar Autoit:
Algunos ejemplos con teoría: http://lua.gts-stolberg.de/es/Verzweigung.php
Una introducción: http://es.debugmodeon.com/articulo/introduccion-a-lua
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: LUA - Complemento multiplataforma - ¿Que es?

Mensaje por Ximorro »

Hombre, eso de que no hace falta aprender porque es similar al Basic... :smt005
Supongo que quieres decir que es más fácil empezar con algo así que con lenguajes compilados, que son más restrictivos en su sintaxis. Vaya, como AutoIt, que puede ser muy complicado pero también se pueden hacer cosas sencillas en dos patadas.

Ahora mismo creo que no voy a meterme con otro lenguaje interpretado de propósito general, para este tipo de "rutinas de mantenimiento" uso AutoIt, en el trabajo uso el lenguaje propio del sistema, y para otras cosas generales (y multiplataforma) uso Java, que no es que sepa mucho pero de vez en cuando me viene bien.

Por ejemplo lo último que hice en Java es un programa para leer archivos xml de millones de líneas (sí, de 5 a 6 millones) y generar tablas dBase con los datos contenidos en ellos, además teniendo en cuenta la codificación de los datos (el xml viene de Unix y tengo que generar dbf en codificación CP-1252 de Windows).
¿Eso se podría hacer en LUA?

Un par de cuestiones LUA, a ver si me engancháis... ;-)
a) ¿Se pueden generar GUIs desde el propio lenguaje?
B) ¿Se puede crear un ejecutable independiente del intérprete de desarrollo? Vaya, como AutoIt, que haces un exe de 300kb y funciona perfectamente (o debería) en otra máquina que no tiene AutoIt.
Sí he leído que se puede precompilar el código LUA... ¿pero se puede hacer un exe que contenga el intérprete o hay que instalarlo si nos lo llevamos a otro ordenador?
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: LUA - Complemento multiplataforma - ¿Que es?

Mensaje por BasicOs »

Ximorro escribió:
Un par de cuestiones LUA, a ver si me engancháis... ;-)
a) ¿Se pueden generar GUIs desde el propio lenguaje?
B) ¿Se puede crear un ejecutable independiente del intérprete de desarrollo? Vaya, como AutoIt, que haces un exe de 300kb y funciona perfectamente (o debería) en otra máquina que no tiene AutoIt.
Sí he leído que se puede precompilar el código LUA... ¿pero se puede hacer un exe que contenga el intérprete o hay que instalarlo si nos lo llevamos a otro ordenador?
Más bien es para tener más libertad de:
programar en otros SISTEMAS operativos y en hacer cosas del -1% que autoit esté limitado y que se usa C++,

Yo estoy empezando con LUA para moviles, pero en CORONA-lua, lees una imagen en una variable y la posicionas, y luego asignas funciones a eventos de esa imagen como "tocar", con lo que el tocar la imagen ejecuta la función, digamos algo como hotkeyset("imagen","funcion")
El lua estandar se puede usar interpretado o compilado, lo que no lo he probado, el lua-corona se compila en un exe para el OS que se use.

Aquí dice que reemplaza a C, usando funciones propias de LUA (UDF-LUA), dentro de los fuentes de C, o metiendo llamadas a lua dentro de C
o bien llamandolo como autoit.exe nombredeScript :
Aunque Lua ha sido diseñado como un lenguaje de extensión, para ser embebido en programas en C, también es frecuentemente usado como lenguaje independiente. Con la distribución estándar se proporciona un intérprete independiente denominado simplemente lua. Éste incluye todas las bibliotecas estándar, incluyendo la de depuración. Se usa así:

lua [opciones] [fichero_de_script [argumentos]]
Las opciones son:
-e sentencia: ejecuta el string sentencia;
-l módulo: carga módulo con la función require;
-i: entra en modo interactivo después de ejecutar el fichero_de_script;
-v: imprime información de la versión;
--: deja de procesar opciones en el resto de la línea;
-: toma stdin como fichero para ejecutar y no procesa más opciones.
Es decir que igual que autoit puede llamar a funciones de LUA, también se puede compilar en C++ llamando funciones de LUA (con lo que no necesitamos al reemplazar escribir código en C++ )
Se pretende que Lua sea usado como un lenguaje de script potente y ligero para cualquier programa que lo necesite. Lua está implementado como una biblioteca escrita en C limpio (esto es, en el subconjunto común de ANSI C y C++)
Está ejecutandose en un sistema de programación host o principal, haciendo funciones dentro de las fuentes de Autoit o C (por ejemplo)
no tiene noción de programa principal (main): sólo funciona embebido en un cliente anfitrión, denominado programa contenedor o simplemente anfitrión (host). Éste puede invocar funciones para ejecutar un trozo de código Lua, puede escribir y leer variables de Lua y puede registrar funciones C para que sean llamadas por el código Lua.
conjunto de funciones C disponibles para que el programa anfitrión se comunique con Lua. Todas las funciones de la API y sus tipos y constantes relacionados están declaradas en el fichero de cabecera lua.h.
Del uso de LUA en este caso los que están más duchos son los Autoiters de Autoit.de, hay unos 10 programadores escribiendo sobre el tema, SOBRE TODO BUGFIX, PROGANDY y campweb hizo un programa en C con funciones LUA para la Playstation:
http://www.autoit.de/index.php?page=Board&boardID=56
Creo que si alguien pregunta algo en inglés se puede profundizar un poco más ;(.

Yo espero en unas semanas ir avanzando en CORONA-LUA, a ver que tal... más que nada porque veo al movil el complemento ideal a los programa que pueda tener en el ordenador, además puedo generar en autoit cualquier programa que envie "DATOS" y que se recojan con el movil en otro interface.
Por ejemplo haciendo un GUI con 4 imagenes, según cada imagen que haga recoge unos datos y los procesa para devolverme un resultado (tambien se podría hacer en PHP)
En cuanto a estar en ruta y gestionando datos, y lo veo muy facil.

Salu22:=
FUENTE: http://www.lua.org/manual/5.1/es/manual.html#6
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: LUA - Complemento multiplataforma - ¿Que es?

Mensaje por Ximorro »

Pues gracias, veo que puede ser independiente pero está más orientado a ser embebido.
Ya nos enseñarás algo si haces algún experimento interesante.

¿Cómo ves lo de la portabilidad? ¿Eso que has hecho con el CoronaLua para el móvil es fácil pasarlo a un exe de Windows para que lo probemos en el ordenador, por ejemplo?
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: LUA - Complemento multiplataforma - ¿Que es?

Mensaje por BasicOs »

Lo de la portabilidad esta muy ampliado, aquí un lenguaje de script para android basado en lua:
http://google-opensource.blogspot.com/2 ... pting.html

Lo de portar el CORONA.lua a otro sistema operativo no tiene problemas, mientras sean los soportados.
(Lo que necesitas MAC para compilar para IPHONE aunque no para usar el simulador y demás), el codigo es reusable en su mayor parte. Aquí un tutorial de como va todo.


Realmente si quieres multi sistema, y que corra en windows tienes que usar el instalador que está en el enlace más arriba que te instala de lua.org el lua para windows, o bien el de linux, o bien otros como el de android
o bien los de corona android, iphone, nook y kindle fire, hay "maquinas virtuales" y muchos otros entornos que lo soportan como WOW, Adobe® Photoshop® Lightroom® SDK , Scite etc..
Enlace al corona: http://www.emesn.com/autoitforum/viewto ... f=1&t=3111
Salu22:)
Responder