Lua
Lua llenguatge de programació | |
---|---|
Autor | Roberto Ierusalimschy Luiz Henrique de Figueiredo Waldemar Celes |
Data d’origen | 1993 |
Última versió | 5.4.3 (29 de març de 2021) |
Ús | genèric, scripting, programació de jocs |
Paradigmes | multi-paradigma: scripting , imperatiu ( procedimental , orientat a objectes ), funcional |
Escrivint | fort, dinàmic |
Extensions comunes | .lua |
Influenciat per | C ++ , CLU , Modula , Scheme , SNOBOL |
Va influir | Jo , GameMonkey , Squirrel , Falcon , MiniD , Julia |
Implementació de referència | |
Sistema operatiu | multiplataforma |
Llicència | Llicència MIT |
Lloc web | www.lua.org/ |
( EN ) "El llenguatge de programació". | ( IT ) "El llenguatge de programació". |
Lua és un llenguatge de programació dinàmic, reflexiu , imperatiu i procedimental, que s'utilitza com a llenguatge de seqüència d'ordres per a ús general.
Història
Lua va ser creat el 1993 per Roberto Ierusalimschy , Luiz Henrique de Figueiredo i Waldemar Celes [1] , membres de Tecgraf / PUC-RIO , el grup de Tecnologia i Computació Gràfica de la Universitat Catòlica Pontifícia de Rio de Janeiro , Brasil [2] . Les versions de Lua anteriors a la versió 5.0 es van llançar amb una llicència similar a la llicència zlib [3] . Des de la versió 5.0 Lua s'ha llançat sota la llicència MIT [3] .
En un article publicat al Dr. Dobb's Journal , els creadors de Lua van afirmar que Lisp i Scheme, amb la seva estructura de dades típica, la llista, van tenir la influència més gran en la decisió d'adoptar la taula com a estructura de dades principal a Lua [4] .
Lua s'ha utilitzat en moltes aplicacions comercials i no comercials. [5]
Característiques del llenguatge
Les principals característiques de Lua són les funcions, vistes com a "objectes" de primer nivell i, per tant, assignables a variables, i l'ús de taules com a estructures de dades genèriques. Aquestes funcions permeten al llenguatge implementar funcions que es poden veure en llenguatges orientats a objectes sense que el mateix sigui.
Exemples
El clàssic programa " Hello world " es pot escriure com:
imprimir "Hola, món!"
Factorial és un exemple de funció recursiva :
funció factorial ( n )
si n == 0 llavors
retorn 1
final
retorn n * factorial ( n - 1 )
final
Aquest exemple mostra com és possible, en Lua, redefinir les funcions del llenguatge:
fer
local oldprint = imprimir : deseu la funció tal com va ser definida per Lua, sense desar el fitxer
- valor retornat per la funció, però la funció mateixa
print = function ( s ) : substitueix la funció d'impressió
si s == "foo" llavors
impremta antiga ( "barra" )
en cas contrari
oldprint (s)
final
final
final
Totes les trucades futures a la funció d'impressió faran referència ara a la nova funció i l'antiga funció només serà accessible mitjançant la nova versió de la mateixa.
Aquest exemple mostra una característica de Lua: la capacitat de definir dinàmicament taules (l'estructura de dades que utilitza el llenguatge). En aquest cas, es tracta d’una taula que associa l’enèsim número de Fibonacci al valor fibs [n].
fibs = { 1 , 1 } : valor inicial de fibs [1] i fibs [2]
setmetatable ( fibs , {
__index = funció ( fibs , n ) : crideu aquesta funció si el valor fibs [n] no existeix
fibs [ n ] = fibs [ n - 2 ] + fibs [ n - 1 ] : calcula i emmagatzema el valor
tornar fibs [ n ]
final
})
Exemples d'ús
- Lua s'utilitza molt sovint en PSP per a la programació Homebrew .
- El firmware de les impressores Olivetti com Any_way, Simple_way i My_way, anomenat HERCULE, es va crear amb el llenguatge de programació dinàmica Lua.
- El Lua s’utilitza per crear scripts i connectors per al MMORPG Lineage II .
- El Lua també s'utilitza per crear complements compatibles amb el MMORPG de World of Warcraft .
- El Lua també s'utilitza per crear scripts amb el MMORPG Metin2 .
- El Lua també s'utilitza per crear modificacions per a Mod de Garry .
- Lua també va crear nombrosos guions i entrenadors per al guardonat joc GTA IV de Rockstar Games.
- Al videojoc de PC Baldur's Gate II: Shadows of Amn, la intel·ligència artificial dels personatges es gestiona a Lua. De fet, és possible personalitzar completament aquests scripts per modificar el comportament predeterminat de cada personatge segons les diferents circumstàncies del joc.
- Dues modificacions del videojoc Minecraft , anomenades ComputerCraft i OpenComputers, permeten crear programes dins del joc mateix, escrivint-los en llenguatge Lua.
- Molts scripts TeamSpeak es creen amb Lua. Un d’ells és l’aetas funscripts.lua.
- El microprogramari Open Source OpenTx que equipa diversos dispositius de radiocontrol per a la fabricació de models té la capacitat d’executar programes creats en llenguatge Lua.
- Multi Theft Auto, el mod que permet jugar en línia a GTA: San Andreas , està escrit en part amb Lua.
- La plataforma NUT de Cedac Software us permet crear aplicacions incrustades amb l’idioma Lua.
- Els jocs disponibles a Roblox estan escrits íntegrament amb Lua.
- Moltes modificacions del videojoc Minetest es fan a Lua.
- Love2D és un marc per desenvolupar videojocs 2D amb el llenguatge Lua.
- La placa de prototipatge Esp8266 és programable a Lua, a través del firmware contingut a la plataforma IoT NodeMCU .
- El motor de joc Game-Guru basa la programació i el comportament d’objectes i personatges en llenguatge Lua.
Cites
- Al videojoc Escape from Monkey Island , la barra Scumm es convertirà en una refinada barra de sushi i el nom es canviarà per Lua Bar , subratllant l’adopció del nou llenguatge de script a GrimE , el Lua.
Nota
- ^ (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo i Waldemar Celes, The Evolution of Lua (PDF) a lua.org, 2007, p. 1. Recuperat el 4 de novembre de 2015 .
- ^ (EN) About a lua.org, 19 d'octubre de 2015. Obtingut el 4 de novembre de 2015.
- ^ A b (EN) License , lua.org el 12 de maig de 2015. Obtingut el 4 de novembre de 2015.
- ^ (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo i Waldemar Celes, Lua: an Extensible Embedded Language , a la revista Dr. Dobb, vol. 21, n. 12, 1 de desembre de 1996, ISSN 1044-789X . Consultat el 4 de novembre de 2015 .
- ^ (EN) Usos a lua.org, 24 de març de 2015. Obtingut el 4 de novembre de 2015.
Articles relacionats
Altres projectes
-
Viquillibres conté textos o manuals sobre Lua
-
Wikimedia Commons conté imatges o altres fitxers sobre Lua
Enllaços externs
- ( EN , PT ) Lloc oficial , a lua.org .
- Dipòsit de fonts Lua , a github.com .
- ( EN ) Lua , al Directori de programari lliure .
- (EN) Lua , a lua-users.org.
Control de l'autoritat | LCCN (EN) sh2004007514 · GND (DE) 7547043-3 · BNF (FR) cb166522948 (data) |
---|