Lua — Vikipediya

Lua
Loqonun şəkli
Paradiqmalar Obyekt yönümlü proqramlaşdırma
Yaradılma tarixi 1993[2]
Fayl sonluğu .lua[3][4], .luna, .lunaire və ya .anair
Sonuncu versiyası
Təsirlənib C++, SNOBOL, Modula-2, Scheme
Əməliyyat sistemi kross-platforma[5]
lua.org
Vikianbarın loqosu Vikianbarda əlaqəli mediafayllar

Luayü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ə | mənbəni redaktə et]

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ə[redaktə | mənbəni redaktə et]

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

Dəyişən təyin etmək[redaktə | mənbəni redaktə et]

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

Faktorial[redaktə | mənbəni redaktə et]

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

Dövr operatorları[redaktə | mənbəni redaktə et]

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

While[redaktə | mənbəni redaktə et]

local condition = true while condition do     --Statements end 

Repeat[redaktə | mənbəni redaktə et]

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ə | mənbəni redaktə et]

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ə | mənbəni redaktə et]

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

Funksiyalar[redaktə | mənbəni redaktə et]

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ə | mənbəni redaktə et]

  • Figueiredo, L. H.; Celes, W.; Ierusalimschy, R., redaktorlar Lua Programming Gems. Lua.org. 2008. ISBN 978-85-903798-4-3.
  • Gutschmidt, T. Game Programming with Python, Lua, and Ruby. Course Technology PTR. 2003. ISBN 1-59200-077-0.
  • Ierusalimschy, R. Programming in Lua (2nd). Lua.org. 2006. ISBN 85-903798-2-5. (The 1st ed. is available online.)
  • Jung, K.; Brown, A. Beginning Lua Programming. Wrox Press. 2007. ISBN 0-470-06917-1.
  • Schuytema, P.; Manyen, M. Game Development with Lua. Charles River Media. 2005. ISBN 1-58450-404-8.
  • Takhteyev, Yuri. Coding Places: Software Practice in a South American City. The MIT Press. 2012. ISBN 0-262-01807-1. 2017-05-24 tarixində orijinalından arxivləşdirilib. İstifadə tarixi: 2013-09-05. Chapters 6 and 7 are dedicated to Lua, while others look at software in Brazil more broadly.
  • Varma, Jayant. Learn Lua for iOS Game Development. Apress. 2012. ISBN 1-4302-4662-6.

İstinadlar[redaktə | mənbəni redaktə et]

Xarici keçidlər[redaktə | mənbəni redaktə et]