Lua

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Nota de desambiguació.svg Desambiguació : si busqueu altres significats, vegeu LUA .
Lua
llenguatge de programació
Lua-Logo.svg
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

Nota

  1. ^ (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 .
  2. ^ (EN) About a lua.org, 19 d'octubre de 2015. Obtingut el 4 de novembre de 2015.
  3. ^ A b (EN) License , lua.org el 12 de maig de 2015. Obtingut el 4 de novembre de 2015.
  4. ^ (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 ( WC ACNP ) . Consultat el 4 de novembre de 2015 .
  5. ^ (EN) Usos a lua.org, 24 de març de 2015. Obtingut el 4 de novembre de 2015.

Articles relacionats

Altres projectes

Enllaços externs

Control de l'autoritat LCCN (EN) sh2004007514 · GND (DE) 7547043-3 · BNF (FR) cb166522948 (data)
Informàtica Portal de TI : accediu a les entrades de Viquipèdia relacionades amb TI