Lua

Vikipediya, açıq ensiklopediya
Jump to navigation Jump to search
Lua
Lua-logo-nolabel.svg
Paradiqma(lar)Multi-paradiqma: skriptinq, imperative (prosesual, prototip əsaslı, obyekt yönümlü), funksional
Müəllif(lər)Roberto İerusalimşi
Valdemar Celes
Luis Enrike de Figueiredo
Yaranma tarixi1993 (25 il əvvəl) (1993)
Stabil versiyası5.3.5 / 10 iyul 2018 (14 ay əvvəl) (2018-07-10)
Sınaq versiyası5.4.0 (work2)
Fayl sonluğu.lua
Tip sistemiDinamik, güclü, ördək
ƏSKross platform
TətbiqləriLua, LuaJIT
DialektləriMetalua, Idle, GSL Shell
TəsirlənibC++, CLU, Modula, Scheme, SNOBOL
Təsir edibGameMonkey, Io, JavaScript, Julia, MiniD, Red, Ring, Ruby, Squirrel, MoonScript
LisenziyaMIT Lisensiyası
Veb saytılua.org

Lua (port. lua [[Beynəlxalq fonetik əlifba|[ˈlu.(w)ɐ]]] ay mənasını verir) - 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[redaktə | əsas redaktə]

Dil 1993-cü ildə Braziliyada Rio-de-Janeyro Katolik Universitetində Kompyuter 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.

Kod nümunələri[redaktə | əsas redaktə]

Hello World[redaktə | əsas redaktə]

#!/usr/bin/lua
print("Hello World!")

Dəyişən elan etmək[redaktə | əsas redaktə]

#!/usr/bin/lua
a = "Hello World!"
print(a)

faktorial[redaktə | əsas redaktə]

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

Dövr operatorları[redaktə | əsas redaktə]

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

While[redaktə | əsas redaktə]

local condition = true
while condition do
    --Statements
end

Repeat[redaktə | əsas redaktə]

local condition = false
repeat
    --Statements
until condition

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

for[redaktə | əsas redaktə]

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[redaktə | əsas redaktə]

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

Funksiyalar[redaktə | əsas redaktə]

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[redaktə | əsas redaktə]

Xarici keçidlər[redaktə | əsas redaktə]