Lua (limbaj de programare)
Lua | |
![]() | |
Lua | |
Extensii fișiere | .lua |
---|---|
Paradigmă | imperativ, scripting, (procedural, prototype-based programare orientată pe obiecte), funcțională |
Apărut în | 1993 |
Proiectat de | Roberto Ierusalimschy Waldemar Celes Luiz Henrique de Figueiredo |
Dezvoltator | Roberto Ierusalimschy[*][[Roberto Ierusalimschy (Brazilian computer scientist (born 1960))|]][1] ![]() |
Ultima versiune | 5.3.2/ (2015-11-30) |
Tipare | dinamică, strong, duck |
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 |
Tip MIME | text/x-lua ![]() |
Prezență online | www.lua.org |
Modifică date / text ![]() |
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
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