factograf
SV

programspråk

Lua

Lua
All data from the card 12
Paradigm
multi-paradigm: imperativ (procedurell, prototyp-baserad, objektorienterad), funktionell
Gavs ut
1993
Skapat av
Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo
Senaste version
5.5.1 (2026-07-24)
Datatypsdisciplin
strong, duck, dynamic
Implementationer
Lua, LuaJIT, LLVM-Lua, Lua Alchemy
Dialekter
Metalua, Idle, GSL Shell
Influerat av
C++, CLU, Modula, Scheme, SNOBOL
Influerat
Io, GameMonkey, Squirrel, Falcon, MiniD, Julia
Plattform
multiplattform
Licens
MIT-licens
Webbplats
www.lua.org

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.

Historia

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

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.

Exempelkod

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

print('Hello, World!')

Här är ett annat exempel:

print('Wikipedia är bra')

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:

local function factorial(nbr) -- inparametern nbr är ett heltal
    local res = 1 -- initiera lokal variabel res till 1
    for idx = 2, nbr do -- för index 2 till nbr
        res = res * idx
    end
    return res -- returnerar nbr!
end
print(factorial(5)) -- 5! = 120

Read next

In 75 languages

Text from Wikipedia, CC BY-SA 4.0 · Source article