Lua (limbaj de programare)

Lua
Lua
Extensii fișiere.lua
Paradigmăimperativ, scripting, (procedural, prototype-based programare orientată pe obiecte), funcțională
Apărut în1993
Proiectat deRoberto Ierusalimschy
Waldemar Celes
Luiz Henrique de Figueiredo
DezvoltatorRoberto Ierusalimschy[*][[Roberto Ierusalimschy (Brazilian computer scientist (born 1960))|​]][1]  Modificați la Wikidata
Ultima versiune5.3.2/  (2015-11-30)
Tiparedinamică, strong, duck
Implementări majoreLua, LuaJIT, LLVM-Lua, Lua Alchemy
DialecteMetalua, Idle, GSL Shell
Influențat deC++, CLU, Modula, Scheme, SNOBOL
InfluențeIo, GameMonkey, Squirrel, Falcon, MiniD
Sistem de operaremultiplatformă
LicențăLicență MIT
Tip MIMEtext/x-lua  Modificați la Wikidata
Prezență onlinewww.lua.org
Modifică date / text Consultați documentația formatului

Lua (pronunțat în engleză /luːə/, din portugheză lua /ˈlu.(w)ɐ/ înseamnă lună[2]) 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ă.[3] Lua are un API C relativ simplu.[4]

Exemple de cod

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 Arhivat în , la Wayback Machine.

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

Comentarea utilizează următoarea sintaxă, similară cu cea a limbajelor Ada, Eiffel, Haskell, SQL și VHDL:

-- Un comentariu în Lua începe cu două cratime și ține până la sfârșitul rândului.

--[[ Comentariile sau șirurile de caractere întinse pe mai multe rânduri
     sunt încadrate de paranteze pătrate duble. ]]

--[=[ Comentarii ca acesta pot avea alte --[[comentarii]] încorporate. ]=]

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

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

--condiție = true

while condiție do
  --enunțuri
end

repeat
  --enunțuri
until condiție

for i = first,last,delta do --delta poate fi negativ, permițând buclei să numere crescător sau descrescător
  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

  1. ^ https://www.lua.org/authors.html, accesat în   Lipsește sau este vid: |title= (ajutor)
  2. ^ „About Lua”. Lua.org. Accesat în . 
  3. ^ „About Lua”. Lua.org. Accesat în . 
  4. ^ Yuri Takhteyev (). „From Brazil to Wikipedia”. Foreign Affairs. Accesat în . 

Bibliografie

În engleză
  • Matheson, Ash (). „An Introduction to Lua”. GameDev.net. Accesat în . 
  • Fieldhouse, Keith (). „Introducing Lua”. ONLamp.com. O'Reilly Media. Arhivat din original la . Accesat în . 
  • Streicher, Martin (). „Embeddable scripting with Lua”. developerWorks. IBM. 
  • Quigley, Joseph (). „A Look at Lua”. Linux Journal. 
  • Hamilton, Naomi (). „The A-Z of Programming Languages: Lua”. Computerworld. IDG. Arhivat din original la . Accesat în .  Interview with Roberto Ierusalimschy.
  • Ierusalimschy, Roberto; de Figueiredo, Luiz Henrique; Celes, Waldemar (). „Passing a Language through the Eye of a Needle”. ACM Queue. ACM.  How the embeddability of Lua impacted its design.
  • Lua papers and theses

Legături externe

Wikibooks are o carte despre subiectul: Lua Functional Programming
MediaWiki are documentație referitor la: Lua
  • Materiale media legate de Lua la Wikimedia Commons
  • Site web oficial
  • lua-users.org Arhivat în , la Wayback Machine. – Community website for and by users (and authors) of Lua
  • eLua – Embedded Lua
  • Projecte în Lua
  • SquiLu Squirrel modified with Lua libraries
Control de autoritate
  • BNF: cb166522948 (data)
  • GND: 7547043-3
  • LCCN: sh2004007514