Lua (programmeringssprog)

programmeringssprog
Denne artikel er om selve programmeringssproget Lua. Se Wikipedia:Lua for brugen af Lua på Wikipedia.
Disambig bordered fade.svg For alternative betydninger, se Lua. (Se også artikler, som begynder med Lua)

Lua (portugisisk for "måne") er et scriptprogrammeringssprog til integrering i programmer, med det formål at gøre det nemmere at videreudvikle dem. En af sprogets særlige egenskaber er scriptfortolkerens ringe størrelse.

Lua-Logo.svg

Lua blev udviklet i 1993 af Roberto Ierusalimschy, Luiz Henrique de Figueiredo og Waldemar Celes fra Computer Graphics Technology Group ved Pontifícia Universidade Católica do Rio de Janeiro, et katolsk universitet i Rio de Janeiro, Brasilien. Lua er fri software og blev indtil version 5 udgivet under en BSD-licens, og fra version 5 under MIT-licensen.

Sproget anvendes ofte i computerspil. I kommercielle spil anvendes Lua eksempelvis i Heroes of Newerth, Heroes of Might and Magic V, Monkey Island 4, Spellforce, Far Cry, World of Warcraft, Microsoft Freelancer, Half-Life 2, Garry's Mod, The Settlers V, Parkan 2, Star Wars: Battlefront II og Company of Heroes, mens det fri software anvendes i eksempelvis Angband 3 (og varianterne ZAngband og ToME).

Programmer skrevet i Lua bliver før udførelsen oversat til byte-code. Selvom man kan skrive selvstændige programmer i Lua, er det primært tænkt som et scriptsprog til C-programmer, i denne forbindelse sammenligneligt med Tcl.

Lua-fortolkeren kan kaldes gennem et C-bibliotek, der også indeholder et API til kald af fortolkeren fra C-programmer på kørselstidspunktet. Gennem API'et kan forskellige dele af programmet skrives i C eller Lua, mens variabler og funktioner er tilgængelige i begge retninger (dvs. en funktion i Lua kan kalde en funktion i C, og omvendt).

Implementeringen af Lua er i ANSI-C, og der understøttes funktions- såvel som objektionsorienteret programmering.

Typiske koderRediger

Her er nogle eksempler på nogle "scripts" skrevet i Lua.

Hello World:

 print("Hello World!")

event

RegisterUnitEvent(ID, 1, "Navn_Effekt")

Litteratur (engelsk)Rediger

  • Ierusalimschy, Roberto (2006), Programming in Lua (2. udgave), Lua.org, ISBN 85-903798-2-5 (Første udgave er tilgængelig online)
  • Ierusalimschy, Roberto; Figueiredo, L. H.; Celes, W. (2006), Lua 5.1 Reference Manual, Lua.org, ISBN 85-903798-3-3
  • Schuytema, P.; Manyen, M. (2005), Game Development with Lua, Charles River Media, ISBN 1-58450-404-8

Ekstern henvisningRediger