Lua


Lua
Lua
[[Archivo:128px|220px]]
Información general
Paradigma Multiparadigma: interpretado, imperativo, funcional, orientado a objetos, basado en prototipos
Apareció en 1993
Diseñado por Roberto Ierusalimschy
Waldemar Celes
Luiz Henrique de Figueiredo
Última versión estable 5.1.4 (22 de agosto de 2008)
Tipo de dato dynamic, weak ("duck")
Implementaciones Lua, LuaJIT, LLVM-Lua, LuaCLR, Nua, Lua Alchemy
Dialectos Metalua
Influido por Scheme, SNOBOL, Modula, CLU, C++
Ha influido a Io, GameMonkey, Squirrel, Falcon, Dao, MiniD
Sistema operativo Multiplataforma
Licencia MIT License

Lua es un lenguaje de programación imperativo, estructurado y bastante ligero que fue diseñado como un lenguaje interpretado con una semántica extendible. El nombre significa "luna" en portugués y gallego.

Contenido

Historia

Lua fue creado en 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes, 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 los datos y pueden ser lógicos, enteros, números de coma flotante o cadenas. Estructuras de datos como vectores, conjuntos, tablas hash, listas y registros 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. Lua ofrece soporte para funciones de orden superior, recolector de basura. Combinando todo lo anterior, es posible utilizar Lua en programación orientada a objetos.

Funcionamiento interno

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.

Codigos de ejemplo

ón se muestran ejemplos del lenguaje Lua

El clasico programa Hola Mundo (Hello World en inglés)

print("Hello World!")

A continuación se muestra un comentario

-- Un comentario en Lua empieza con doble guion hasta la siguiente línea
--
[[
   También se pueden hacer comentarios de dos o mas líneas entre corchetes
]]

Construción de tablas

table = {}
   table[1] = "Cadena de caracteres"
   table['pi'] = 3.141592
   table.hello = "hello world"

Uso de tablas

print(table[1]) -- Cadena de caracteres
print(table.pi) -- 3.141592
print(table['hello']) -- hello world

Aplicaciones

Lua ha sido usado para procesar datos de entrada a sistemas complejos, configurar aplicaciones, controlar hardware y muchos otras cosas.[1]

  • 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 Flash, 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, convirtiendolo 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.

En videojuegos

Debido a que Lua compilado es pequeño, veloz y tiene una licencia permisiva ha ganado seguidores entre los desarrolladores de videojuegos. Algunos usos de Lua:

  • World of Warcraft, donde el usuario tiene la posibilidad de personalizar casi completamente la interfaz gráfica.
  • También en un mod de tipo sandbox para Half-Life 2 llamado Garry's Mod, pudiendo modificarlo casi completamente. Gran parte de Garry's Mod está escrito en Lua.
  • También en un mod para Half-Life 2 llamado Fortress Forever que permite configurar altamente los mapas.
  • El videojuego de estrategia en tiempo real a gran escala Supreme Commander, el cual es modificable por el usuario en casi todos sus aspectos.
  • El videojuego de rol Tibia, modificable casi totalmente (poderes, mapas, etc) junto con XML.
  • Parte de S.T.A.L.K.E.R.: Shadow of Chernobyl, permitiendo al jugador modificar armas, armaduras y aspectos varios del juego.
  • Grim Fandango y La Fuga de Monkey Island (cuarta entrega de la saga Monkey Island) utilizan internamente scripts en Lua para definir la historia y los eventos que ocurren durante la partida.
  • Worms 4: Mayhem utiliza Lua y XML para definir las misiones y desafíos.
  • Mediante un programa casero (o homebrew), el LuaPlayer, permite ejecutar archivos .lua en la conocida consola portátil de Sony.
  • Ragnarok Online usa Lua para programar la inteligencia artificial de los homúnculos.
  • Regnum Online usa Lua para la mayoría de scripts del juego como interfaz, modo de juego, acciones, étc.
  • TASpring un juego de estrategia en tiempo real, usa Lua para la mayoría de scripts del juego como interfaz, modo de juego, acciones, étc.
  • Multi Theft Auto: San Andreas usa Lua para diseñar modos de juego, mapas y scripts. Este programa es una modificación multijugador que permite al usuario jugar Grand Theft Auto San Andreas en línea con otro usuario de computador a computador.
  • "Blitzkrieg". Se usa el lenguaje Lua en los editores de mapas e incluso los puede escribir uno mismo.
  • "Counter-Strike 2D". Permite utilizar scripts Lua para crear, por ejemplo, modos de juego completamente nuevos mediante una interfaz de "hooks, tablas, variables y arrays"
  • "StepMania". Se usa el lenguaje Lua para desarrollar la implementación de animaciones del entorno gráfico, y asimismo la ejecución de comandos internos relacionados con la jugabilidad.
  • "Wolfenstein: Enemy Territory": Algunos modos de este juego vienen con el lenguaje Lua para correr scripts como mini-modos, scripts de administración, modificación de mapas, etc.
  • Hedgewars: Utiliza Lua en los scripts, misiones y mapas.
  • Roblox: Utiliza Lua en sus líneas de código para realizar escenarios.
  • Tales OF Pirates: Utiliza lua en sus scripts/funciones/mapas/misiones y en practicamente todo. Es muy util para editar cualquier aspecto del servidor

Referencias

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • lua — LUÁ, iau, vb. I. tranz. I. 1. A prinde un obiect în mână spre a l ţine (şi a se servi de el) sau spre a l pune în altă parte. ♢ expr. A lua altă vorbă = a schimba (cu dibăcie) subiectul unei discuţii. A( şi) lua picioarele la spinare = a pleca… …   Dicționar Român

  • Lua — Logo Basisdaten Paradigmen: Skriptsprache, imperativ, funktional, objektorientiert …   Deutsch Wikipedia

  • LUA — Apparu en 1993 Auteur Luiz Henrique de Figueiredo, Roberto Ierusalimschy et Waldemar Celes Implémentations Lua, LuaJIT, LLVM Lua, LuaCLR, Nua, Lua A …   Wikipédia en Français

  • LUA — (portugiesisch für Mond) ist eine Skriptsprache zum Einbinden in Programme, um diese leichter weiterentwickeln und warten zu können. Eine der besonderen Eigenschaften von Lua ist die geringe Größe des kompilierten Skript Interpreters. Lua wurde… …   Deutsch Wikipedia

  • lua — s. f. 1. O único planeta satélite da Terra. 2. Tempo compreendido entre dois novilúnios. 3.  [Por extensão] Mês. 4.  [Popular] Cio. 5.  [Ictiologia] O mesmo que peixe lua. 6. Disco de ouro ou prata que os Timores usam ao pescoço, como símbolo de… …   Dicionário da Língua Portuguesa

  • Lua — may refer to: * Lua (programming language), a lightweight, extensible programming language * Lua (Yu Gi Oh! 5D s) * Lua (goddess), the Roman goddess * Lua (martial art), a traditional Hawaiian martial art * Lua (song), a single by the folk rock… …   Wikipedia

  • LUA — LUA  аббревиатура: LUA  последний всеобщий предок (также переводится как «Последний универсальный предок» (англ. LUA, Last Universal Ancestor), иначе Последний универсальный общий предок (англ. LUCA, last universal common… …   Википедия

  • lúa — (Del gót. lôfa, palma de la mano). 1. f. Especie de guante hecho de esparto y sin separaciones para los dedos, que sirve para limpiar las caballerías. 2. Mar. Revés de las velas por la parte donde van cazadas con viento largo o en popa. 3. Mar.… …   Diccionario de la lengua española

  • Lua — Lua, römische Göttin, Tochter des Saturnus, welcher nach der Schlacht zur Sühne des vergossenen Blutes erbeutete Waffen von dem Feldherrn verbrannt wurden …   Pierer's Universal-Lexikon

  • LUA — Dea quaedam apud vett, a luendo, expiandoque nomen sortita, quae praeerat lustrationibus, et lustris. Vide Turneb. Adver s. l. 16. c. 20. et l. 23. c. 23. et l. 19. c. 11. Eius meminit A. Gell. l. 13. c. 22. cum ait in libris Sacerdotum Pop. Rom …   Hofmann J. Lexicon universale