Lua
Lua lenguaje de programación | |
---|---|
Autor | Roberto Ierusalimschy Luiz Henrique de Figueiredo Waldemar Celes |
Fecha de origen | 1993 |
Ultima versión | 5.4.3 (29 de marzo de 2021) |
Uso | genérico, scripting, programación de juegos |
Paradigmas | multi-paradigma: scripting , imperativo ( procedimental , orientado a objetos ), funcional |
Mecanografía | fuerte, dinámico |
Extensiones comunes | .lua |
Influenciado por | C ++ , CLU , Modula , Esquema , SNOBOL |
Influyó | Yo , GameMonkey , Ardilla , Halcón , MiniD , Julia |
Implementación de referencia | |
Sistema operativo | multiplataforma |
Licencia | Licencia MIT |
Sitio web | www.lua.org/ |
( ES ) "El lenguaje de programación". | ( ES ) "El lenguaje de programación". |
Lua es un lenguaje de programación dinámico, reflexivo , imperativo y procedimental, utilizado como lenguaje de scripting para uso general.
Historia
Lua fue creada en 1993 por Roberto Ierusalimschy , Luiz Henrique de Figueiredo y Waldemar Celes [1] , miembros de Tecgraf / PUC-RIO , el grupo de Tecnología y Computación Gráfica de la Pontificia Universidad Católica de Río de Janeiro , Brasil [2] . Las versiones de Lua anteriores a la 5.0 se publicaron bajo una licencia similar a la licencia zlib [3] . Desde la versión 5.0, Lua se ha lanzado bajo la licencia MIT [3] .
En un artículo publicado en Dr. Dobb's Journal , los creadores de Lua afirmaron que Lisp y Scheme con su estructura de datos típica, la lista, tuvieron la mayor influencia en la decisión de adoptar la tabla como estructura de datos primaria en Lua [4] .
Lua se ha utilizado en muchas aplicaciones comerciales y no comerciales. [5]
Características del lenguaje
Las principales características de Lua son las funciones, vistas como "objetos" de primer nivel y, por tanto, asignables a variables, y el uso de tablas como estructuras de datos genéricas. Estas características permiten que el lenguaje implemente características vistas en lenguajes orientados a objetos sin el mismo ser.
Ejemplos de
El programa clásico " Hola mundo " se puede escribir como:
imprimir "¡Hola, mundo!"
Factorial es un ejemplo de función recursiva :
función factorial ( n )
si n == 0 entonces
volver 1
fin
devuelve n * factorial ( n - 1 )
fin
Este ejemplo muestra cómo es posible, en Lua, redefinir las funciones del lenguaje:
hacer
oldprint local = print - guarde la función tal como la definió Lua, sin guardar la
- valor devuelto por la función, pero la función en sí
print = function ( s ) - anula la función de impresión
si s == "foo" entonces
huella antigua ( "barra" )
demás
oldprint (s)
fin
fin
fin
Cualquier llamada futura a la función de impresión ahora hará referencia a la nueva función, y la función anterior solo será accesible por la nueva versión de la misma.
Este ejemplo muestra una característica de Lua: la capacidad de definir tablas dinámicamente (la estructura de datos utilizada por el lenguaje). En este caso, es una tabla que asocia el n-ésimo número de Fibonacci al valor de fibs [n].
fibs = { 1 , 1 } - valor inicial para fibs [1] y fibs [2]
setmetatable ( fibs , {
__index = function ( fibs , n ) - llame a esta función si el valor de fibs [n] no existe
fibs [ n ] = fibs [ n - 2 ] + fibs [ n - 1 ] - calcula y almacena el valor
devolver mentiras [ n ]
fin
})
Ejemplos de uso
- Lua se usa con mucha frecuencia en PSP para la programación de Homebrew .
- El firmware de las impresoras Olivetti como Any_way, Simple_way y My_way, llamado HERCULE, fue creado con el lenguaje de programación dinámica Lua.
- El Lua se utiliza para crear scripts y complementos para MMORPG Lineage II .
- El Lua también se usa para crear complementos compatibles con el MMORPG de World of Warcraft .
- El Lua también se usa para crear scripts con el MMORPG de Metin2 .
- El Lua también se usa para crear modificaciones para Garry's Mod .
- Lua también creó numerosos guiones y entrenadores para el galardonado juego GTA IV de Rockstar Games.
- En el videojuego para PC Baldur's Gate II: Shadows of Amn la inteligencia artificial de los personajes se gestiona en Lua. De hecho, es posible personalizar completamente estos scripts para modificar el comportamiento predeterminado de cada personaje de acuerdo con las diversas circunstancias del juego.
- Dos mods del videojuego Minecraft , llamados ComputerCraft y OpenComputers, te permiten crear programas dentro del propio juego, escribiéndolos en lenguaje Lua.
- Muchos scripts de TeamSpeak se crean con Lua. Uno de ellos es aetas funscripts.lua.
- El firmware OpenTx de código abierto que equipa varios dispositivos de control de radio para la creación de modelos tiene la capacidad de ejecutar programas creados en lenguaje Lua.
- Multi Theft Auto, el mod que permite jugar en línea en GTA: San Andreas , está escrito en parte con Lua.
- La plataforma NUT de Cedac Software le permite crear aplicaciones integradas utilizando el lenguaje Lua.
- Los juegos disponibles en Roblox están escritos completamente con Lua.
- Muchas modificaciones para el videojuego Minetest se hacen en Lua.
- Love2D es un marco para desarrollar videojuegos 2D utilizando el lenguaje Lua.
- La placa de creación de prototipos Esp8266 es programable en Lua, a través del firmware contenido en la plataforma IoT NodeMCU .
- El motor de juego Game-Guru basa la programación y los comportamientos de objetos y personajes en lenguaje Lua.
Citas
- En el videojuego Escape from Monkey Island , el Scumm Bar se convertirá en un refinado bar de sushi y el nombre se cambiará a Lua Bar , subrayando la adopción del nuevo lenguaje de secuencias de comandos en GrimE , el Lua.
Nota
- ↑ (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes, The Evolution of Lua (PDF) en lua.org, 2007, p. 1. Consultado el 4 de noviembre de 2015 .
- ^ (EN) Acerca de en lua.org, 19 de octubre de 2015. Recuperado el 4 de noviembre de 2015.
- ^ A b (EN) License , lua.org el 12 de mayo de 2015. Recuperado el 4 de noviembre de 2015.
- ↑ (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes, Lua: an Extensible Embedded Language , en Dr. Dobb's Journal, vol. 21, n. 12, 1 de diciembre de 1996, ISSN 1044-789X . Consultado el 4 de noviembre de 2015 .
- ^ (EN) Usos en lua.org, 24 de marzo de 2015. Recuperado el 4 de noviembre de 2015.
Artículos relacionados
Otros proyectos
-
Wikilibros contiene textos o manuales sobre Lua
-
Wikimedia Commons contiene imágenes u otros archivos sobre Lua
enlaces externos
- ( EN , PT ) Sitio oficial , en lua.org .
- Repositorio de fuentes de Lua , en github.com .
- ( ES ) Lua , en Free Software Directory .
- (EN) Lua , en lua-users.org.
Control de autoridad | LCCN (EN) sh2004007514 · GND (DE) 7547043-3 · BNF (FR) cb166522948 (fecha) |
---|