.lua
.luna
.lunaire
.anair
Lua — yüngül, multi paradiqmalı, proqramlaşdırma dili olub qurulan sistemlərdə istifadə üçün dizayn edilmişdir. Lua, interpretatoru ANSI C dilində yazıldığı üçün kross platformdur və nisbətən sadə C APİsinə malikdir.
Lua ilkin olaraq 1993-cü ildə həmin dövrün artan proqram nizamlama tələbini qarşılamaq üçün tətbiqi proqramları genişləndirən dil kimi dizayn edilmişdi.
İdeologiya və tətbiqinə görə Lua JavaScript-ə daha yaxın olsa və prototipli OOP modelini tətbiq etsə də, Paskala-bənzər sintaksisi, daha güclü və çevik konstruksiyaları ilə fərqlənir. Luanın xarakterik xüsusiyyəti minimum sintaksis ilə çox sayda proqram obyektini tətbiq edə bilməsidir. Belə ki, bütün əsas istifadəçi məlumat növləri (massivlər, strukturlar, çoxluqlar, sıralar, siyahılar) cədvəl mexanizmi ilə, obyekt yönümlü mexanizmlər isə meta cədvəllər ilə reallaşdırılır.
Dil 1993-cü ildə Braziliyada Rio-de-Janeyro Katolik Universitetində Kompüter Qrafikası Texnologiyası Qrupu (Tecgraf) üzvləri olan Robertu İerusalimşi, Luiz Enrike de Fiqueiredo və Valdemar Celes tərəfindən yaradılmışdır.
#!/usr/bin/lua print("Hello World!")
#!/usr/bin/lua a = "Hello World!" print(a)
function factorial(n) local x = 1 for i = 2,n do x = x * i end return x end
Luada 4 dövr operatoru var. While, Repeat, for, generik for.
local condition = true while condition do --Statements end
local condition = false repeat --Statements until condition
until dən sonra verilmiş şərt(condition) true olana qədər dövr davam edir.
for index = 1,5 do print(index) end
dövr 5 dəfə icra olunur və hər dəfə 1-dən 5-ə qədər rəqəmlər ekrana verilir.
for key,value in pairs(_G) do print(key,value) end
do local oldprint = print -- Store current print function as oldprint function print(s) -- Redefine print function, the usual print function can still be used if s == "foo" then oldprint("bar") else oldprint(s) end end end
#include <stdio.h> #include <stdlib.h> #include <lua.h> #include <lauxlib.h> int main() { lua_State *L = luaL_newstate(); if (luaL_dostring(L, "function foo (x,y) return x+y end")) exit(1); lua_getglobal(L, "foo"); lua_pushinteger(L, 5); lua_pushinteger(L, 3); lua_call(L, 2, 1); printf("Result: %d\n", lua_tointeger(L, -1)); lua_close(L); return 0; }
yuxarıdakı nümunənin nəticəsi
$ gcc -o example example.c -llua $ ./example Result: 8