Lua

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.

 Tarixi 
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.

 Nümunə 
#!/usr/bin/lua
print("Hello World!")

 Dəyişən təyin etmək 
#!/usr/bin/lua
a = "Hello World!"
print(a)

 Faktorial 
function factorial(n)
    local x = 1
    for i = 2,n do
        x = x * i
    end
    return x
end

 Dövr operatorları 
Luada 4 dövr operatoru var. While, Repeat, for, generik for.

 While 
local condition = true
while condition do
    --Statements
end

 Repeat 
local condition = false
repeat
    --Statements
until condition

until dən sonra verilmiş şərt(condition) true olana qədər dövr davam edir.

 For 
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.

 Generik for 
for key,value in pairs(_G) do
    print(key,value)
end

 Funksiyalar 
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

 C dilindən Lua funsiyasının çağrılması

#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

 Kitablar 



  (The 1st ed. is available online.)


  Chapters 6 and 7 are dedicated to Lua, while others look at software in Brazil more broadly.


 İstinadlar 

 Xarici keçidlər 
 Rəsmi saytı
 lua-users.org
 Luada Proqramlar 
 Lua əməliyyat sistemi layihəsi 

Kateqoriya:1993-cü ildə yarananlar
Kateqoriya:Çarpaz platformalı proqram təminatı