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[*][1] |
Ultima versiune | 5.3.2/ |
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
[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 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
[modificare | modificare sursă]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
[modificare | modificare sursă]- ^ https://www.lua.org/authors.html, accesat în Lipsește sau este vid:
|title=
(ajutor) - ^ „About Lua”. Lua.org. Accesat în .
- ^ „About Lua”. Lua.org. Accesat în .
- ^ Yuri Takhteyev (). „From Brazil to Wikipedia”. Foreign Affairs. Accesat în .
Bibliografie
[modificare | modificare sursă]- În engleză
- Matheson, Ash (). „An Introduction to Lua”. GameDev.net. Arhivat din original la . 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
[modificare | modificare sursă]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