Ng’okozesa olulimi lwa pulogulaamu lwa Lua, osobola okukola emizannyo egy’enjawulo, ebikozesebwa,
roboti z’okusuubula n’enkulaakulana endala. Olulimi Olulua lwangu okutegeera, lulina omuvvuunuzi amanyiddwa ennyo. Kiteesebwako okumanyiira Lua okumpi, wamu n’okuyiga engeri y’okuwandiika robot oba script y’okusuubula mu lulimi luno.
- Olulimi Olulua lwe luli era lwa mugaso lutya?
- Ebiwandiiko ebimpi eby’ebyafaayo
- Ebintu ebiri mu lulimi lwa pulogulaamu lwa Lua
- Ebirungi n’ebibi ebirimu
- Okugerageranya ne Javascript
- Ebintu ebiri mu pulogulaamu za roboti okusuubula mu lulimi Olulua
- Okulaba ku robots ezisinga okusuubula ku Lua – eby’okugonjoola ebyetegefu eri abatandisi
- Enkomerero ya roboti “Delta Pro”.
- RQ: Ekitundu kimu ku buli kikumi
- RQ: Martin nga bwe kiri
- Ebika by’ebiwandiiko bya Lua eby’ekifo kya QUIK
- Engeri y’okuwandiika roboti mu Lua
- Engeri y’okukolamu pulogulaamu mu LUA mu QUIK terminal
- Engeri y’okuteeka script ya LUA mu kifo eky’okusuubula
Olulimi Olulua lwe luli era lwa mugaso lutya?
Lua lulimi lwangu okukozesa olusobola okuteekebwamu. Abatandisi bakkiriza nti olw’obuyambi bwayo, osobola okuyiga emisingi gy’okukola pulogulaamu mu bbanga ttono. Lua egattibwa bulungi n’enkulaakulana ezaakuŋŋaanyizibwa mu lulimi olulala. Kitera okusemba abayizi abaakatandika mu sayansi w’okukola dizayini y’ebyuma ebikozesebwa mu byuma bikalimagezi.
Olulimi Olulua lutera okukozesebwa mu bintu eby’enjawulo. Kiyinza okujja mu ngeri ey’omugaso:
- Omukozesa azannya emizannyo gya kompyuta (wandiika plugins).
- Omukugu mu kukulaakulanya emizannyo (okukulaakulanya yingini).
- Programmer y’okukulaakulanya enkola (wandiika plugins ez’ebikozesebwa eby’enjawulo).
- Developer mu direction of embedded (olulimi terukendeeza ku nkola era lukusobozesa okukola obulungi)
- Abasuubuzi okuwandiika scripts n’okusuubula bots.
Okwebaza Lua, roboti ezisukka mu emu ezisuubula zitondeddwawo. Ekirungi kiri nti buli mukozesa asobola okutegeera amangu obutonotono bw’olulimi era nga yeetongodde n’akola pulogulaamu ng’eyo. Okuyita mu yo, kijja kusoboka okuweereza ebiragiro
ku Quik terminal n’okukola okwekenneenya okw’ekikugu. Olulimi lwa Lua lwa ki, okulambika olulimi lwa pulogulaamu lwa LUA: https://youtu.be/PbYf6uNZFCE
Ebiwandiiko ebimpi eby’ebyafaayo
Lua yayiiya mu 1993 abakola pulogulaamu mu Brazil okuva mu kitongole kya Tecgraf. Abakola olulimi baakakasa nti buli mukozesa asobola okukola ennongoosereza ezimu mu nkulaakulana y’olulimi. Kino kiyinza okukolebwa nga tuyita mu open access ku code. Ku Brazil, okuvaayo kw’olulimi lwayo olwa pulogulaamu kyali kizuuliddwa ddala. Mazima ddala, nga ekyo tekinnatuuka, eggwanga lino teryatuuka ku buwanguzi bwe butyo mu by’okukola kompyuta.
Olulimi luno lwatondebwawo nga basinziira ku SOL ne DEL. Enkulaakulana zino zaalabye ensi ng’ebula omwaka gumu okusinga Lua. Ekibiina kye kimu eky’e Brazil kye kyakola ng’omuwandiisi. Ennimi zino eza pulogulaamu zaalagirwa kkampuni ya Petrobras eya gavumenti y’emu ekola ku kukola n’okulongoosa amafuta. Lua 5.4.0 eyasembyeyo yafulumizibwa gye buvuddeko – mu 2020. Abakola pulojekiti bagezaako okuyingiza ebintu ebinyuvu era eby’omugaso mu pulojekiti emirundi mingi nga bwe kisoboka. N’olwekyo, pulogulaamu eno etereezebwa buli kiseera era nga yeetaagibwa nnyo mu bakola pulogulaamu eno.
Ebintu ebiri mu lulimi lwa pulogulaamu lwa Lua
Nga boolekedde Lua, omukugu aweebwa omukisa okukozesa olulimi luno, byombi nga luzimbibwamu (olw’okuba nga lulina script) era nga luyimiriddewo (mu mbeera ezimu, lusobola okukozesebwa awatali kwongerako). Abawandiisi bwe baakola ku kutondawo Lua, baagenda mu bugenderevu okukola ekintu ekikola ekitatwala kifo kinene era nga kyangu okukola ku kyuma kyonna.
Abakola pulogulaamu eno baagezaako okwanguyiza olulimi luno nga bwe kisoboka, n’abakola pulogulaamu abatandisi basobole okulukuguka mu bwangu. Kino kye kyeyongedde obwetaavu bwa pulojekiti eno. Abakugu balina omukisa okuwandiika code n’okukola enkulaakulana ennene nga tebaddukira mu tterekero ly’ebitabo ku mukutu omutongole. Abawandiisi baafaayo ku kubeerawo kwa parameters ezeetaagisa mu pulogulaamu yennyini. Abakozesa abatandisi batera okuyiga mu bitundu olulimi Olulua lwe lukozesebwa. Yakolebwa okukola pulogulaamu mu kitongole ky’amakolero. Naye leero, nga tuyambibwako olulimi luno, roboti ez’enjawulo ezisuubula, scripts, emizannyo gya kompyuta, applications, bots za Telegram, n’ebirala bitondebwawo. Ng’oggyeeko ekyo, Lua yeenyigira mu bukodyo obuyiiya obuyamba okunoonyereza mu bwengula. Era ekozesebwa mu kusomesa abayizi ku yunivasite. Olulimi lwa pulogulaamu olusinga okwettanirwa Lua lutwalibwa awaka. Mu Brazil mwe kikozesebwa kumpi buli wamu (we kisoboka).
Ebirungi n’ebibi ebirimu
Okufaananako pulogulaamu yonna, enkola n’olulimi lwa pulogulaamu lwa Lua birina ebirungi n’ebibi ebiwerako. Kiba kirungi okutandika n’ebirungi ebiri mu nkulaakulana:
- Entambula ey’omutindo . Obutafaananako pulogulaamu nnyingi, Lua nnyangu okukyusa okuva ku nkola emu okudda ku ndala. Mu mbeera eno, tewali nkyukakyuka nnene. Mu ngeri yonna, tewajja kubaawo nsobi mu koodi.
- Amaterekero g’ebitabo mangi . Bw’ogeraageranya ne JavaScript , Lua erina eby’okulonda eby’etterekero ly’ebitabo ebitono nnyo. Naye, ekintu ekitongole kirina buli kimu kye weetaaga okukola mu bujjuvu n’olulimi.
- Obulung’amu . Enkola eno ekusobozesa okwongerako amaterekero ago amakulu eri enkola ey’enjawulo ey’okuwandiika enkoodi mu bbanga ttono.
- Obwangu bw’okukozesa . Programming gurus beetaaga okuyiga ebitonotono ebikwata ku lulimi, era ne mu kiseera ekyo basobola okulukozesa awatali bulabe mu nkulaakulana zaabwe. Ku abo abaakatandika ne programming, nabo tekitwala bbanga ddene okutegeera Lua.
- Okukekkereza ennyo mu kujjukira . Nga akola pulogulaamu mu lulimi luno, omukugu akakasiddwa okulaba enjawulo ne analog endala. Anti enkulaakulana za Lua zeetaaga memory entono ku kyuma kino.
Ekizibu kyokka ekikulu ekiri mu lulimi luno kwe kuba nti lulina script. Era kino kitegeeza nti emirundi mingi kisobola okukozesebwa nga kigatta wamu n’ennimi endala ez’enkulaakulana zokka. Ekisinga okwettanirwa ku zino ye C. Kwe kugamba, ojja kuba olina okuyiga olulimi olulala olw’okukola pulogulaamu.
Okugerageranya ne Javascript
Abakozesa bangi bageraageranya Lua ku JavaScript, nga bagamba nti koodi zaabwe kumpi ze zimu. Mazima ddala waliwo okufaanagana okungi wakati w’ennimi okusinga enjawulo. Naye, wadde nga byeyoleka bulungi nti bifaanagana, waliwo enjawulo nnyingi. Okugeza Lua erina obuyambi bwayo obwa software. Wabula, abakola JavaScript gye buvuddeko baaleeta update, okusinziira ku ekyo, omukozesa yeetaaga okuwandiika ekigambo “yield” wakati wa generators, oluvannyuma program ejja kuwagirwa.
Omukozi wa Lua ogw’okusitula okutuuka ku maanyi alaga akabonero ng’ako “^”, ate mu JavaScript kiri “**”. Ekisembayo kirina emirimu gya zoom in ne zoom out. Naye Lua asobola okukola operator overloading. JavaScript erimu emirimu gyokka egy’enkyukakyuka, ate Lua erina gye gitegeezeddwa. JavaScript esobola okwewaana olw’okuwagira omutindo gwa Unicode ogumanyiddwa ennyo. Omugatte “!==” gukozesebwa okulaga obutafaanagana mu lulimi, era Lua akozesa “~=” olw’ekigendererwa kye kimu. Enjawulo endala ziragiddwa mu kipande.
Ebintu ebiri mu pulogulaamu za roboti okusuubula mu lulimi Olulua
Okukola robots ku QLua si kizibu n’akatono, n’abatandisi basobola okukikwata. Ekikulu kwe kutegeera endowooza enkulu ku ntandikwa yennyini. Okusobola okukola koodi, ekikyusa ebiwandiiko ekisinga okuba eky’angu kya mugaso. Enteekateeka y’okutonda efaananako n’okukung’aanya ekiraga. Naye waliwo enjawulo etali nnene mu koodi yennyini. Ekirala ekirungi “highlight” – robot empya ekoleddwa esobola okuteekebwa wonna ku PC yo.
Mugaso! Wabeewo omulimu gumu gwokka mu koodi – “main”.
Koodi ya robot bw’emala okukung’aanya n’okulongoosebwa, kirungi okugitereka. Tewerabira ku lua extension. Nga bwe kyayogeddwako edda, pulogulaamu eno esobola okuteekebwa wonna ku kompyuta. Okugezesa koodi yo, olina okuddukanya roboti eno. Okukola kino, genda mu kitundu “Empeereza”. Wansi wajja kubaawo layini “Lua scripts”, erina okunyigibwa.
Ekiddako, eddirisa eririmu ebiwandiiko ebitikkiddwa lijja kulabika. Eyo olina okulonda fayiro eyeetaagisa n’ogiddukanya ng’okozesa bbaatuuni esaanidde.
Ku nkomerero, kirungi okukebera koodi ya bot okulaba oba tewali nsobi. Singa byonna biba birungi, roboti ejja kutandika. Mu mbeera y’okusannyalala, kirungi okuddamu okudda ku koodi n’okebera obutuufu bwayo.
Okulaba ku robots ezisinga okusuubula ku Lua – eby’okugonjoola ebyetegefu eri abatandisi
Ng’okozesa olulimi lwa pulogulaamu olwa Lua, osobola okukola ebika bya roboti eby’enjawulo eby’obuzibu bwonna. Kyokka osobola okugula pulogulaamu eyeetegefu. Kiteesebwako okumanyiira enkola ezimanyiddwa ennyo ezaali zeetegese edda okukola. Osobola okuzigula oba okugezaako demo version. Roboti emaliridde okusuubula ekifo kya QUIK e Lua: https://youtu.be/Z2xzOfNZFso
Enkomerero ya roboti “Delta Pro”.
Kikusobozesa okukola nga 120 any options ku platform emu. Mu mbeera eno, osobola okukozesa ebika by’obukodyo n’ebikozesebwa eby’enjawulo.
RQ: Ekitundu kimu ku buli kikumi
Roboti eno ekoleddwa okusuubula mu by’okusuubula. Algorithm ekusobozesa okwongera ku nnyingiza okuva mu mulimu guno emirundi egiwerako. Obulabe bukendeezebwa, busobola bulungi okubalibwa.
RQ: Martin nga bwe kiri
Enkola eno ekusobozesa okubala looti nga tonnaba kukola ddiiru. Okusuubula mu mbeera ya “semi-automatic” kuweereddwa. Emitendera gisobola okulondoolebwa obulungi n’okuteekebwawo mu ngalo.
Ebika by’ebiwandiiko bya Lua eby’ekifo kya QUIK
Nga okola omulimu ogugere mu QUIK terminal, scripts zino wammanga ze zikozesebwa:
- Lua ebiwandiiko . Ziyinza okuteekebwa ku mutimbagano, ku disiki y’omu kitundu, oba mu kifo ekirala we zijja okutuukirirwa ku terminal. Zikola ekimala okukola roboti y’okusuubula nga bayambibwako. Kijja kusoboka okukola emmeeza mu QUIK, okukozesa ebikozesebwa, okuwa ebiragiro okukola emirimu egy’enjawulo, n’ebirala.
- Ebiraga eby’ennono . Wano, bw’ogeraageranya n’okulaba okwasooka, emirimu mingi nnyo. Programu egendereddwamu omukozesa okulaga algorithm y’ebikolwa ku terminal charts.
Okukola pulogulaamu mu Lua eri abo abaagala okukuguka mu lulimi mu bujjuvu – funa ekitabo ekijjuvu:
Okukola pulogulaamu mu Lua Robots mu Lua for QUIK – Iceberg robot: https://youtu.be/cxXwF_xmTHY
Engeri y’okuwandiika roboti mu Lua
Nga asazeewo okukola roboti ye, omukozesa alina okugoberera enkola eyasooka okukung’aanya. Bw’afuna obumanyirivu mu kukola pulogulaamu, ajja kusobola bulungi okuwandiika koodi ze n’okugezesa. Bw’olonda Lua okusoma ekitundu kino, omutandisi tajja kusobya. Anti mu ntandikwa, ekikulu kwe kuyimirira ku lulimi lwa pulogulaamu olwangu era olusinga okutegeerekeka. Okutandika, ggulawo pulogulaamu ya QUIK trading terminal. Mu ddirisa lyayo, olina okukola ekitabo. Kino kye kifo ebiwandiiko byonna ebiwandiikiddwa we binaaterekebwa. Omukozesa asobola okuwa ekitabo erinnya lyonna ddala, naye kirina okubaamu ennukuta z’Olulattini zokka. Ka tugambe nti erinnya lyayo ye “LuaScripts”. Ekiddako, olina okukola folda n’okola text editor eyo, okugeza, Notepad. Mu kifo ekyererezi (munda mu ddirisa lya pulogulaamu) olina okunyiga ku ddyo
. Akabokisi k’okukubaganya ebirowoozo kajja kulabika, mu lukalala lw’olina okulondako ekitundu “Tondawo”, n’oluvannyuma olunyiriri lwa “Ekiwandiiko ky’Ekiwandiiko”.
Era erina okuweebwa erinnya, ereme kutabulwa luvannyuma. Okugeza, osobola okuwandiika “Script_N1”. Tewerabira ku kusalawo kw’olulimi olukozesebwa – .lua. Kwe kugamba, omukozesa alina okufuna ekiwandiiko ng’ekyo ku kiwandiiko “Script_N1.lua”. Wabula Windows etera okukyusa ekyongereza mu ngeri ey’otoma ng’eteekamu fayiro ya .txt. Mu mbeera eno, kirungi okukola ekiwandiiko mu NotePad++, okuteekawo okusalawo okwetaagisa. Mu pulogulaamu eno, ojja kwetaaga okulonda ekitundu “Syntaxes”. Akabokisi k’okukubaganya ebirowoozo akalimu eby’okulondako ebiwerako kajja kulabika wano. Ojja kwetaaga okulonda “L”. Okuva awo, eddirisa eddala lijja kulabika w’olina okunyiga ku “Lua”.
Oluvannyuma lw’ekyo, mu menu y’emu, wamu n’ekitundu “Syntaxes”, olina okunyiga ku kitundu “File”. Mu ddirisa eriddako wajja kubaawo ekiwandiiko – “Save as”. Omukozesa yeetaaga okuginyigako n’alinda okutuusa ng’eddirisa eppya ligguka.
Eyo, waggulu, layini eriko erinnya ly’ekitabo ekyatondebwawo emabegako “Lua scripts” ejja kulabika. Wansi mu ddirisa, ebiwandiiko ebirala 2 omukozesa by’akoze biragiddwa. Singa buli kimu kikwatagana, olina okukakasa ekikolwa n’okutereka embeera ya koodi eriwo kati.
Ekiddako kwe kuwandiika koodi mu lulimi lwa pulogulaamu lwa Lua lw’olonze. Abatandisi basobola okukozesa ekiragiro, kijja kuyamba okukola koodi ennyangu, omukugu asobole okugezaako omukono gwe. Algorithm y’ebikolwa esangibwa mu fayiro ya pulogulaamu eyitibwa QLUA.chm. Kiteesebwako, okugeza, okuwandiika koodi ennyangu bwetyo:
function main()
message(“Ekiwandiiko kyange ekisooka etongozeddwa”);
end Ekiddako, olina okunyiga ku bbaatuuni ya save mu menu.
Koodi erina okuteekebwa mu fayiro “Script_N1.lua”. Tugitongoza ne tulaba engeri script esooka gy’eraga. Okugiggulawo mu QUIK, olina okuggulawo pulogulaamu eno n’olonda ekitundu “Services” mu kitundu eky’okulonda. Ekiddako, akabokisi k’okukubaganya ebirowoozo kajja kulabika, eyo olina okunyiga ku “LUA scripts …”.
Olwo omukozesa ajja kulaba ekitabo “Available scripts”. Ku ludda olwa waggulu ku ddyo waliwo akabonero akalaga nti Add. Kinyige onoonye fayiro eriko koodi. Kisangibwa wano “Script_N1.lua”.
Nga oggulawo ekiwandiiko, kikulu okulonda layini “Script_N1.lua” (kirina okuterekebwa ku drive C), olwo, wansi, koona ku “Run” button.
Eddirisa eppya lijja kulabika amangu ddala.
Okwewala ennukuta zino ezitategeerekeka, olina okugenda ku pulogulaamu ya NotePad. Mu settings mulimu ekitundu “Encodings”, nyweza ku kyo. Olwo olukalala lwa tabu lujja kulabika, nga mu zo olina okunyiga ku “Convert to ANSI”.
Ekiddako, olina okunyiga ku bbaatuuni y’okutereka n’odda mu ddirisa ly’obubaka. Wajja kubaawo dda ekiwandiiko ekirala, so si lunyiriri oluliko ebiwandiiko.
Engeri y’okukolamu pulogulaamu mu LUA mu QUIK terminal
Waliwo engeri 3 ezimanyiddwa ennyo:
- Fayiro yonna ey’ekiwandiiko etondebwawo, awali ekigatta .lua we kirina okuteekebwa. Ekiddako, olina okuggulawo editor n’owandiika code. Oluvannyuma lw’okutandika, algorithm ng’eyo ejja kukolebwa omulundi gumu gwokka. Osobola okugiddukanya mu ngalo ekiseera ekitali kigere. Osobola okugikozesa okubala omulundi gumu amawulire agamu.
- Mu Lua script yennyini, olina okukola omulimu oguyitibwa main() . Ekirala, mu mulimu gwe gumu, olina okuyingiza koodi ewandiikiddwa. Era omulimu gwa sleep() gwa mugaso okuyimiriza script okumala akaseera oba, mu ngeri endala, okuddamu okugitandika. Kwe kugamba, singa okola omulimu omukulu (), n’oluvannyuma n’oyingiza omulimu gw’okwebaka (), ojja kusobola okutuuka ku kubalirira n’emirundi gy’ekiseera ekigere.
- Mu pulogulaamu ya QLUA, osobola okukozesa enkola y’enkulaakulana evugirwa ebibaddewo. Bwe kityo, kati tekikwetaagisa “kuzuula” nkyukakyuka mu mulimu gumu era, olw’ensonga eno, okukola ebiragiro bino wammanga.
Kiteesebwako okwekenneenya enkola esembayo mu bujjuvu. Okukwata ekintu ekibaawo ekigere, olina okuwandiika omulimu mu script mu Quick. Osobola okukozesa enteekateeka eno wammanga: Ekiwandiiko kya
LUA kiyinza okubaamu emirimu egiwerako egy’amannya ag’enjawulo: deal, quotes, n’ebirala. Olina okunoonya ekitundu kya “Tables” mu pulogulaamu, genda ku “Lua”. Akabokisi k’okukubaganya ebirowoozo kajja kulabika awo era layini “Available scripts” ejja kulabika, koona ku yo. Ekiddako, nyweza ku “Launch” tab. Awo wajja okukola n’okukola omulimu gwa
main() ogw’ekiragiro . Olwo, olina okulangirira
is_run , omulimu gujja kubaamu omuwendo
omutuufuokutuusa ng’omukozesa akola ku bbaatuuni ya Stop Script. Olwo enkyukakyuka y’omulimu egenda mu mbeera ey’obulimba munda mu OnStop(). Oluvannyuma lw’ekyo, omulimu gwa main() gukoma, era script yennyini n’eyimirira. Ekiwandiiko ekiwandiikiddwa kirina okuterekebwa era kiddukanyizibwa. Nga akola emirimu, omukozesa ajja kulaba data ya buli looti n’omuwendo ogusembayo ogw’okutunda.
Okuddukanya QLua mu Quick, olina okugikyusa mu folda empya ku PC yo. Osobola okugiyita kyonna ky’oyagala okugeza “MyLua”. Scripts za Lua zonna zijja kuterekebwa awo. Bw’omala okuyingira QUIK, olina okuggulawo ekitundu “Services”, olwo onyige ku “Lua scripts” tab. Mu ddirisa erigguka, ssaako “Add” button. Oluvannyuma olina okulonda script n’ogiggulawo. Kijja kuba mu kitundu kya “Downloaded Scripts”. Olwo olina okulaga layini y’ekiwandiiko n’onyiga “Run”. Okuyimiriza script, nyweza ku “Stop”.
Bot ya Quik ku LUA[/ekiwandiiko].
Engeri y’okuteeka script ya LUA mu kifo eky’okusuubula
Terminal z’okutendekebwa n’ez’omutindo zeetaaga algorithm y’emu ey’okuteeka roboti y’okusuubula:
- Kyetaagisa okunyiga ku kitundu “Services” mu menu eya waggulu ku terminal.
- Ekiddako, funa “LUA scripts” button mu drop-down dialog box era onyige:
- Mu kiseera ekyo, eddirisa lya “Available Scripts” lirina okulabika. Olwo, olina okukola ku bbaatuuni ya “Add” n’olonda fayiro ya roboti y’okusuubula eyeetaagisa.
Okuggya data okuva mu kipande kya Lua nga olina script mu Quik terminal: https://youtu.be/XVCZAnWoA8E Lua nkola nnungi nnyo ey’okuyiga programming n’obuwanguzi mu biseera eby’omu maaso. Ekikulu si kukoma ku kusoma ndowooza yokka. Kirungi okuyiga ebisomesebwa nga buli kiseera weegezaamu. Oluvannyuma lw’ekiseera ekigere, omukozi ajja kutandika okukulaakulana era asobole okukola ekintu kye eky’omugaso.