Vojna Enciklopedija:Lua
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 (programski jezik)| 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