Ir al contenido

Lua

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 01:29 5 feb 2009 por Xqbot (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

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

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, las cuales incrementan 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 con punto flotante o cadenas. Estructuras de datos como matrices, conjuntos, tablas hash, listas y registros pueden ser representadas utlizando 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, colector 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 memoria al prescindir del compilador.

También es posible la Compilación JIT utilizado LuaJIT

Aplicaciones

Juegos

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 creando añadidos que permiten informarle de cualquier cosa.
  • También en un mod 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 RTS a gran escala Supreme Commander, el cual es modificable por el usuario en casi todos sus aspectos.
  • El juego de RPG Tibia
  • 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 desafios.
  • Mediante un programa casero(o homebrew), el LuaPlayer, permite ejecutar archivos .lua en la conocida consola portatil de Sony.

Otras aplicaciones

Lua también se ha usado para procesar datos de entrada a sistemas complejos, configurar aplicaciones, controlar hardware y muchos otras cosas.

  • 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.

La lista de usos reportados se puede encontrar aquí.

Enlaces externos