Lua (limbaj de programare)

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
Lua
Lua-logo-nolabel.svg
Extensii fișiere .lua
Paradigmă imperativ, scripting, (procedural, prototype-based programare orientată pe obiecte), funcțională
Apărut în 1993
Dezvoltat de Roberto Ierusalimschy
Waldemar Celes
Luiz Henrique de Figueiredo
Ultima versiune 5.3.2/ 30 noiembrie 2015 (2015-11-30)
Implementări majore Lua, LuaJIT, LLVM-Lua, Lua Alchemy
Dialecte Metalua, Idle, GSL Shell
Influențat de C++, CLU, Modula, Scheme, SNOBOL
Influențe Io, GameMonkey, Squirrel, Falcon, MiniD
Sistem de operare multiplatformă
Licență Licență MIT
Website www.lua.org

Lua (pronunțat în engleză /luːə/, din portugheză lua /ˈlu.(w)ɐ/ înseamnă lună[1]) este un limbaj de programare multiparadigmă creat ca limbaj de scripting cu semantică extensibilă. Întrucât e scris în ANSI C, Lua este un limbaj multiplatformă.[2] Lua are un API C relativ simplu.[3]

Exemple de cod[modificare | modificare sursă]

Clasicul program „hello world” poate fi scris în modul următor:

print('Hello World!')

El mai poate fi scris astfel:

io.write('Hello World!\n')

sau, după exemplul oferit pe site-ul web Lua

io.write("Hello world, from ", _VERSION, "!\n")

Comentarea utilizează următoarea sintaxă, similară ca în Ada, Eiffel, Haskell, SQL și 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. ]=]

Factorialul este implementat ca funcție în exemplul de mai jos:

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

Bucle[modificare | modificare sursă]

Lua are patru tipuri de bucle: while, repeat (similară cu do while), for numeric și for generic.

--condition = true

while condition do
  --statements
end

repeat
  --statements
until condition

for i = first,last,delta do --delta may be negative, allowing the for loop to count down or up
  print(i)
end

Bucla for generic:

for key, value in pairs(_G) do
  print(key, value)
end

va itera prin tabelul _G utilizând funcția iterator standard pairs, până va returna nil.

Referințe[modificare | modificare sursă]

  1. ^ About Lua”. Lua.org. http://www.lua.org/about.html#name. Accesat la 19 iunie 2013. 
  2. ^ About Lua”. Lua.org. http://www.lua.org/about.html#why. Accesat la 11 august 2011. 
  3. ^ Yuri Takhteyev (21 aprilie 2013). „From Brazil to Wikipedia”. Foreign Affairs. http://www.foreignaffairs.com/articles/139332/yuri-takhteyev/from-brazil-to-wikipedia?page=2. Accesat la 25 aprilie 2013. 

Bibliografie[modificare | modificare sursă]

În engleză

Legături externe[modificare | modificare sursă]

Commons
Wikimedia Commons conține materiale multimedia legate de Lua