Lua är ett lättviktigt, reflektivt, procedurellt och imperativt programspråk, designat som ett skriptspråk med utökningsbar semantik som primärt mål.

Lua
Lua-Logo.svg
Paradigmmulti-paradigm: imperativ (procedurell, prototyp-baserad, objektorienterad), funktionell
Gavs ut1993
Skapat avRoberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo
Senaste version5.3.4 (2017-01-30)
Datatypsdisciplinstrong, duck, dynamic
ImplementationerLua, LuaJIT, LLVM-Lua, Lua Alchemy
DialekterMetalua, Idle, GSL Shell
Influerat avC++, CLU, Modula, Scheme, SNOBOL
InflueratIo, GameMonkey, Squirrel, Falcon, MiniD, Julia
Plattformmultiplattform
LicensMIT-licens
Webbplatswww.lua.org

Historia redigera

Lua skapades 1993 av Roberto Ierusalimschy, Luiz Henrique de Figueiredo, och Waldemar Celes, medlemmar i Computer Graphics Technology Group vid Pontifícia Universidade Católica do Rio de Janeiro i Rio de Janeiro.

Utmärkande drag redigera

Lua är dynamiskt typat och kör program genom att tolka bytekod i en registerbaserad virtuell maskin. Det har automatisk minneshantering med stegvis (försvenskat uttryck inkrementell) skräpsamling.

Språket är särskilt väl anpassat för konfigurering och skriptning. Det är snabbt i jämförelse med andra interpreterade skriptspråk och ganska litet. Det är också väldigt enkelt att lära sig och skriva enkla skript med, däremot inte lika passande för större skript.

Källkoden till version 5.2.2 består av ca 20 000 rader C-kod vilket motsvarar ca 180 kB i Linux. Det är gjort för att lätt kunna byggas in i olika applikationer.

Lua är i grunden inte ett objektorienterat språk, men det tillhandahåller mekanismer för att implementera klasser och arv direkt i språket. Dess enda inbyggda datastruktur är table som i grunden är en hashtabell. Denna kan även användas som fält, lista, mängd och tupel.[1]

Exempelkod redigera

Det klassiska "Hello, World!"-programmet skrivs enligt följande:

print('Hello, World!')

Kommentarer skrivs enligt följande syntax, liknande Ada, Haskell, SQL och VHDL:

-- A comment in Lua starts with a double-hyphen and runs to the end of the line.

--[[ Multi-line strings & comments
     are adorned with double square brackets. ]]

--[=[ Comments like this can have other --[[comments]] nested. ]=]

Fakultet-funktionen kan skrivas enligt följande:

function factorial(n)
  local x = 1
  for i = 2,n do
    x = x * i
  end
  return x
end

Källor redigera

Externa länkar redigera