Lua

Из Википедије, слободне енциклопедије
Lua
Lua
Logo
Model: objektno-orijentisani, imperativni, funkcionalni, prototipski
Pojavio se: 1993
Aktuelna verzija: 5.1.4
Datum aktuelne verzije: 22. Avgust 2008.
Uticaji: C++, Scheme, SNOBOL, Modula, CLU
Operativni sistemi: višeplatformski
Licenca: MIT
Sajt: http://www.lua.org

Lua je jednostavan, reflektivan, imperativni i funkcionalni programski jezik, dizajniran kao skript jezik sa proširivom semantikom kao primarnim ciljem. Samo ime jezika potiče od portugalske reči lua što znači mesec. Jezik je kreiran 1993. godine, a licenciran je pod MIT licencom (do verzije 5.0 korišćena je BSD licenca).

Lua poseduje relativno jednostavan C API u poređenju sa ostalim skript jezicima. Lua i JavaScript imaju vrlo sličnu semantiku uprkost velikim razlikama u sintaksi. Po dizajnu, Lua je vrlo slična i programskom jeziku Icon. Ima široku primenu u industriji video-igara, ali i u nekim komercijalnim kao i nekomercijalnim aplikacijama.

Lua programi se ne interpretiraju direktno iz tekstualne Lua datoteke, već se kompajliraju na bajtkod koji se potom izvršava na Lua virtuelnoj mašini. Korišćenjem minimalnog skupa tipova podataka, Lua pokušava da balansira između veličine i moći.

Primer koda[уреди]

Klasični "Pozdrav svete" program:

print("Pozdrav svete!")


ili:

io.write("Pozdrav svete!\n")


print() dodaje karakter za prelaz u novi red, za razliku od io.write() gde se on mora dodati u samom kodu.

-- Komentar u Lui počinje sa duplom crticom i završava sa krajem linije.
--[[ Višelinijski stringovi i komentari
     se obeležavaju duplim uglastim zagradama.]]

Faktorijel je primer rekurzivne funkcije:

function faktorijel(n)
  if n == 0 then
    return 1
  else
    return n * faktorijel(n - 1)
  end
end

Drugi oblik za funkciju faktorijela potiče od Luinog načina izračuna logičkog operatora, po kome Lua vraća vrednost poslednje izračunatog operanda u izrazu:

function faktorijel2(n)             
  return n == 0 and 1 or n * faktorijel2(n - 1)
end

Vidi još[уреди]

Spoljašnje veze[уреди]