Lua dasturlash tili
Lua — yashirin qahramon! Siz uni World of Warcraft, Angry Birds, X-Plane, S.T.A.L.K.E.R kabi o’yinlarda ko’rgan bo’lishingiz kerak. Yoki bo’lmasam Adobe Lightroom va u borligi haqida o’ylab ham ko’rmagan bo’lsangiz kerak. Bu til 1993-yilda dunyoga kelgan. Shunday bo’lsada Lua dasturlash tili bildirmasdan virtual hayotimizni ozgina bo’lsa ham yaxshiroq qilishga yordam bermoqda.
Demak ushbu maqolada Lua dasturlash tili haqida so’z boradi.
Qisqa ma’lumot
Lua dasturlash tili yuqorida aytilganidek 1993-yilda Rio-de-Janeyro Katolik universitetida o’ylab topilgan. Lua nomi portugal tilidan Oy degan ma’noni bildiradi. Lekin uni yaratuvchilari bu tilni LUA deb yozmaslikni so’rashadi, sababi LUA deb yozilsa boshqalar uni qandaydir so’zlar qisqartmasi ya’ni abbreviatura deb o’ylashar ekan. Lua dasturlash tili multi paradigmali skript til bo’lib, OYuD’ning prototip modellarini qo’llaydi.
Bu tilda tiplash dinamik bo’lib, merosga olish uchun meta jadvallardan foydalaniladi, ya’ni u Sizning mahsulotingiz funksional jihatdan rivojlantirish uchun eng qulay vositalardan biridir. Uning o’zi xos ajralib turuvchi imkoniyatlardan biri uning ixchamligidir. O’ziz baho bering, Lua dasturlash tilining so’ngi talqini Lua 5.3.5 bor yo’g’i 300 kb atrofida bo’lib, C dasturlash tilida yozilgan interpretator Linux uchun 182 dan 246 kilobaytgacha, standard kutubxonalar esa 421 kilobaytga tengdir.
Kod
Lua dasturlash tili tashqi ko’rinishi va imkoniyatlari jihatdan JavaScript dasturlash tilining bir ko’rinishiga o’xshashi mumkin, lekin JavaScript dasturlash tili Lua’dan ikki yil o’tib dunyoga kelgan.
Endi hamma uchun odatiy bo’lgan misolni ko’rsatib o’tamiz:
print("Hello World")
Juda tanish va kam ma’lumot beruvchi, shunday emas-mi? Endi Lua dasturlash tilini sintaksisini tushunish uchun ozgina kattaroq misol ko’rsak, masalan, ko’rsatilgan sonning faktorialini topish kodi:
function fact (n) if n == 0 then return 1 else return n * fact(n-1) end end print("enter a number:") a = io.read("*number") -- read a number print(fact(a))
Kod juda oddiy va tushunarli. Aytgancha, Lua dasturlash tilida parellel qiymat berish mumkin:
x, y = y, x
So’ngi misol, kutubxonalar qo’llanilgan misol:
#include#include #include #include #include int main (void) { char buff[256]; int error; lua_State *L = lua_open(); /* opens Lua */ luaopen_base(L); /* opens the basic library */ luaopen_table(L); /* opens the table library */ luaopen_io(L); /* opens the I/O library */ luaopen_string(L); /* opens the string lib. */ luaopen_math(L); /* opens the math lib. */ while (fgets(buff, sizeof(buff), stdin) != NULL) { error = luaL_loadbuffer(L, buff, strlen(buff), "line") || lua_pcall(L, 0, 0, 0); if (error) { fprintf(stderr, "%s", lua_tostring(L, -1)); lua_pop(L, 1); /* pop error message from the stack */ } } lua_close(L); return 0; }
Lua dasturlash tilining yaxshi va yomon tomonlari
Demak, Lua’ning nimasi yaxshi?
Birinchidan, yuqorida ta’kidlanganidek, uning ixchamligidir, Lua dasturlash tili asosi C dasturlash tilida yozilgan bo’lib, Siz dunyoning eng mashhur dasturlash tillaridan biri orqali hamma keng tarqalgan platformalar uchun dasturlar yaratish imkoniyatiga ega bo’lasiz.
Ikkinchidan, Lua juda tez ishlaydi. Agar boshqa tillar bilan taqqoslangan misollar natijasiga qaraydigan bo’lsak, u C yoki Python kabi tez bo’lmasada, ba’zi testlarda yaxshi natijalar ko’rsatadi.
Uchinchidan, u o’rganish uchun juda qulay, xattoki o’rganuvchi tajribali dasturchi bo’lmasa ham. Balkim ingliz tilini 80% tushunadigan odamlar yuqoridagi misollarda keltirilgan kodlarni hech qanday qiyinchiliklarsiz tushunishgan bo’lishsa kerak.
To’rtinchidan, Lua dasturlash tilida ishlash davomida Sizda ma’lumotlar topish bo’yicha hech qanday qiyinchiliklar bo’lmaydi. Lua dasturlash tili uchun juda ko’p resurslar mavjud bo’lib, uning rasmiy saytida ham ko’plab foydali ma’lumotlar keltirilgan. Bundan tashqari StackOverFlow va IRC-chatlarida kuchli dasturchilar jamiyati shakllangan. AQSH’lik dasturchilar esa, har yili ko’rishib, tajriba almashishadi.
Afsuski hozirda hech qanday kamchiliklarsiz dasturlash tillari mavjud emas. Lekin Lua’da ular lokal ko’rinishda. Masalan, bu dasturlash tili Unicode’ni qo’llab-quvvatlamaydi. Ammo maxsus ICU kutubxonadan foydalanib bu muommoni hal qilish mumkin. Yana bir kamchiligi unda xatoliklarni qayta ishlashdagi cheklovlardir. Lekin ko’plab dasturchilar bu kamchilikni yutuq sifatida qabul qilishadi. Yoki, return operatorini blok oxiriga qo’yish kerakligi, va albatta bu ham ba’zilar uchun chiroyli va sifatli kod uchun muhim shart bo’lishi mumkin.
Lua dasturlash tilida ishlash uchun matn muharrirlari(IDE)
LDT(Lua Devemoplent Tools) Eclipce uchun — dunyodagi eng mashhur IDE uchun maxsus kengaytma;
ZeroBrane Studio — Luada yozilgan maxsus muhit;
Decode — unchalik mashhur bo’lmagan muhit, lekin muqobil sifatida yaxshi muhit;
SciTE — Lua dasturlash tilini to’liq qo’llab-quvvatlaydigan matn muharriri.
WoWUIDesigner — bu muhit qaysi o’yin va yana Lua uchun yozilgan skriptlar ishlaydigan muhit hisoblanadi?
Manba:
Umumiy Dasturlash
Lua dasturlash tili