Lua

De Wikipedia, la enciclopedia libre.
Saltar a navegación Saltar a búsqueda
Nota de desambiguación.svg Desambiguación : si busca otros significados, consulte LUA .
Lua
lenguaje de programación
Lua-Logo.svg
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

Nota

  1. (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 .
  2. ^ (EN) Acerca de en lua.org, 19 de octubre de 2015. Recuperado el 4 de noviembre de 2015.
  3. ^ A b (EN) License , lua.org el 12 de mayo de 2015. Recuperado el 4 de noviembre de 2015.
  4. (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 ( WC ACNP ) . Consultado el 4 de noviembre de 2015 .
  5. ^ (EN) Usos en lua.org, 24 de marzo de 2015. Recuperado el 4 de noviembre de 2015.

Artículos relacionados

Otros proyectos

enlaces externos

Control de autoridad LCCN (EN) sh2004007514 · GND (DE) 7547043-3 · BNF (FR) cb166522948 (fecha)
Informática Portal de TI : acceda a las entradas de Wikipedia relacionadas con TI