www.wikidata.uk-ua.nina.az
Lua lu a port misyac shvidka i kompaktna skriptova mova programuvannya rozroblena pidrozdilom Tecgraf Katolickogo universitetu Rio de Zhanejro Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil Interpretator movi ye vilno poshiryuvanim z vidkritim pochatkovim kodom na movi C LuaParadigma multi paradigmova skriptova imperativna funkcionalna ob yektno oriyentovana prototipnaData poyavi 1993 1 Tvorci Roberto YerusalimskijRozrobnik Roberto Yerusalimskij 2 Ostannij relizSistema tipizaciyi dinamichna slaba kachinaOsnovni realizaciyi Lua LuaJIT LLVM Lua LuaCLR Nua Lua AlchemyDialekti MetaluaPid vplivom vid C CLU Simple Object Languaged DELd Snobol Modulad Modula 2d i SchemeVplinula na Io en GameMonkey Squirrel Falcon MiniDMova realizaciyi C 3 Operacijna sistema kros platformova programa 4 Licenziya MIT 5 6 Zvichajni rozshirennya fajliv lua 7 8 luna lunaire abo anairRepozitorij vihidnogo kodu github com lua luaVebsajt lua org Lua u VikishovishiZa mozhlivostyami ideologiyeyu i realizaciyeyu mova najblizhcha do JavaScript prote Lua vidriznyayetsya mogutnishimi j nabagato gnuchkishimi konstrukciyami sproyektovanimi z metoyu ne ploditi sutnosti ponad neobhidne Hocha Lua ne mistit ponyattya klasu i ob yekta v yavnomu viglyadi mehanizmi ob yektnooriyentovanogo programuvannya OOP z pidtrimkoyu prototipiv vklyuchayuchi mnozhinne uspadkuvannya legko realizuyutsya z vikoristannyam metatablic yaki takozh dozvolyayut perevantazhennya operacij tosho Realizovana model OOP yak i v JavaScript prototipna Lua otrimala velike poshirennya v roli vbudovanoyi v inshi proyekti movi scenariyiv napriklad dlya viznachennya konfiguraciyi abo dlya napisannya rozshiren Lua kombinuye prostij procedurnij sintaksis z potuzhnimi mozhlivostyami opisu danih cherez vikoristannya asociativnih masiviv i rozshiryuvanoyi semantiki movi U Lua vikoristovuyetsya dinamichna tipizaciya movni konstrukciyi peretvoryuyutsya na bajt kod yakij vikonuyetsya poverh registrovoyi virtualnoyi mashini z avtomatichnim zbirachem smittya Sam interpretator oformlenij u viglyadi biblioteki legko integrovanoyi v proyekti na movah Si ta Si Kod interpretatora Lua napisanij movoyu Si j rozpovsyudzhuyetsya pid licenziyeyu MIT Zmist 1 Istoriya 2 Realizaciya 3 Prikladi kodu 4 Tipi danih 4 1 nil 4 2 Logichni znachennya 4 3 Chisla 4 4 Ryadki 4 5 Tablici 4 6 Funkciyi 4 7 Potoki 4 8 userdata 5 Vikoristannya 5 1 Igri 5 2 Lua u Vikipediyi 6 Vinoski 7 PosilannyaIstoriya RedaguvatiStvorennya movi pochalosya v 1993 Komanda rozrobnikiv z katolickogo universitetu Rio de Zhanejro nevelika Roberto Yerusalimskij Roberto Ierusalimschy Voldemar Celes Waldemar Celes i Luyis Enrike Luiz Henrique Spochatku mova zamislyuvalasya yak opisova dlya zruchnosti formuvannya velikih masiviv danih pri rishenni zavdan obchislyuvalnogo eksperimentu i mashinnogo modelyuvannya Ale vidtodi mova zaznala znachnih zmin i nizki serjoznih arhitekturnih modifikacij Sogodnishnya populyarnist Lua taka sho Microsoft vidilila rozrobnikam grant na stvorennya NET versiyi movi U bagatoh igrah Lua vikoristovuyetsya yak skriptovij rushij zavdyaki unikalnomu poyednannyu shvidkodiyi legkosti vbudovuvannya v programi ta pidtrimci rozshiryuvanoyi semantiki Realizaciya RedaguvatiYak i bagato interpretovanih mov programuvannya realizaciya Lua maye okremo kompilyator z pochatkovogo kodu u vikonuvanij bajt kod i virtualnu mashinu dlya vikonannya zgenerovanogo bajt kodu Osoblivistyu ye te sho bajt kod ce komandi ne stekovoyi mashini komandi virtualnogo registrovogo procesora yakij bilshe vidpovidaye realnim CPU Take arhitekturne rishennya majzhe pryamo translyuyetsya na komandi suchasnih CPU Ce suttyevo zmenshuye operaciyi z peretvorennya Vnaslidok zmenshennya tehnologichnih operacij peretvorennya zrostaye efektivnist vikonannya Lua skriptiv Standartna virtualna mashina Lua vikoristovuye rozpodil pam yati iz pribirannyam smittya analogichno Java abo NET Dlya zavdan kritichnih za chasom ye JIT kompilyator Lua LuaJIT Lua vikoristovuye yedinij ryadkovij pul sho dozvolyaye zmenshiti vitrati pam yati na zberigannya ryadkiv Prikladi kodu RedaguvatiKlasichnu programu Hello world Vitayu svite mozhna napisati tak print Vitayu svite Cikl z lichilnikom ta krokom v odinicyu for i 1 10 do print i end V rezultati budut vivedeni chisla vid 1 do 10 Dlya zmini kroku v cikli treba vkazati krok tretim parametrom for i 1 10 2 do teper krok ciklu dorivnyuye 2 print i end V rezultati budut vivedeni chisla vid 1 3 5 7 9 Pidrahunok faktorialu daye priklad vikoristannya rekursivnih funkcij function factorial n if n 0 then return 1 Komentar v Lua pochinayetsya z podvijnogo defisa else return n factorial n 1 i zakinchuyetsya na kinci ryadka end end function factorial2 n korotshij ekvivalent napisanogo vishe return n 0 and 1 or n factorial2 n 1 end print multiple lines kilkaryadkovij viraz chi komentar treba pomishati v podvijni kvadratni duzhki Tipi danih RedaguvatiV Lua ye visim tipiv danih nil neviznacheni znachennya boolean logichni znachennya number chisla string ryadki table tablici function funkciyi thread potoki ta userdata Diznatis tip zminnoyi mozhna za dopomogoyu funkciyi type nil Redaguvati nil ce porozhnye znachennya Jogo golovni vlastivosti vidriznyatis vid bud yakogo znachennya ta vkazuvati na vidsutnist znachennya pridatnogo dlya yakogo nebud vikoristannya Takozh nil mozhe buti vikoristanim yak logichne znachennya v takomu razi vin poznachatime nepravdu Logichni znachennya Redaguvati Logichnij tip boolean mistit dva znachennya true pravda ta false nepravda Chisla Redaguvati Chislovij tip v Lua zazvichaj predstavlenij dijsnimi chislami z ruhomoyu komoyu z podvijnoyu tochnistyu hocha mozhna zibrati Lua z inshimi chislami zminivshi viznachennya v luaconf h Ryadki Redaguvati Ryadki v Lua mozhut vklyuchati v sebe bud yakij vosmibitnij simvol Shob stvoriti ryadkovij literal vmist ryadka potribno pomistiti v odinarni abo podvijni lapki Takozh mozhna vikoristovuvati ryadki z perenosami Dlya cogo vikoristovuyutsya podvijni kvadratni duzhki n nogo rivnya de duzhki nulovogo rivnya duzhki pershogo rivnya duzhki drugogo rivnya i t d Dlya prikladu vikoristayemo duzhki tretogo rivnya a ryadki z perenosom v lua Mozhna pomititi sho v literalah stvorenih takim chinom ne potribno ekranuvati odinarni ta podvijni lapki yak ce potribno robiti pri inshih vidah zapisu Tablici Redaguvati Tablici ye najvazhlivishim tipom danih v Lua i ye osnovoyu dlya tipiv danih koristuvacha takih yak strukturi masivi spiski mnozhini Tablicya v Lua yavlyaye soboyu nabir par Klyuch Znachennya Klyuchem mozhe buti bud yake znachennya okrim nil Tablici ne mayut fiksovanogo rozmiru Tomu mozhna dodavati skilki zavgodno elementiv v tablicyu dinamichno Priklad tablici t pusta tablicyat k 10 Klyuch k znachennya 10t 20 super Klyuch 20 znachennya super t IP 192 168 0 1 Klyuch IP znachennya 192 168 0 1Teper zapovnena tablicya bude viglyadati tak t k 10 20 super IP 192 168 0 1 Odinarni ta podvijni lapki v Lua rivnoznachni Varto vibrati odin iz vidiv lapok pri napisanni kodu Dlya vivodu par Klyuch Znachennya z tablici na ekran skoristajtes ciklom for bazovoyu funkciyeyu pairs ta funkciyeyu print for key val in pairs t do print key val end V rezultati otrimayemo pari 20 superk 10IP 192 168 0 1Tablici mozhna vikoristovuvati i yak zvichajni masivi Dlya cogo varto skoristatis zapisom t a b c d e pislya chogo do elementiv mozhna zvertatis za indeksom print t 2 vivede b Zvernit uvagu sho stvoreni takim chinom masivi pochinayutsya z odinici a ne z nulya yak v bilshosti inshih mov Funkciyi Redaguvati Funkciyi v Lua ye znachennyami pershogo klasu sho oznachaye sho funkciyi mozhna peredavati do inshih funkcij povertati z nih ta vikoristovuvati zamikannya Funkciyi mozhut povertati bud yaku kilkist znachen Takozh funkciyu mozhna viklikati z bud yakoyu kilkistyu parametriv zajvi budut ignoruvatis a tim yakih ne vistachaye bude prisvoyeno znachennya nil Potoki Redaguvati Tip thread poznachaye nezalezhnij potik vikonannya Potoki Lua ne varto asociyuvati z potokami operacijnoyi sistemi bagatopotochna programa mozhe vikonuvatis navit v tih sistemah yaki ne pidtrimuyut potoki userdata Redaguvati Tip userdata vikoristovuyetsya dlya roboti z danimi z movi C V nogo nemaye viznachenih napered operacij prote yih mozhna viznachiti za dopomogoyu metatablic Takozh znachennya cogo tipu ne mozhut buti ni stvoreni ni zmineni z Lua dlya cogo potribno vikoristovuvati C API Vikoristannya RedaguvatiIgri Redaguvati Garry s Mod Teeworlds Diablo III S T A L K E R Shadow of Chernobyl S T A L K E R Clear Sky S T A L K E R Call of Pripyat World of Warcraft Ragnarok Online Multi Theft Auto Rise of Nations BeamNG driveLua u Vikipediyi Redaguvati U sichni 2012 na zustrichi rozrobnikiv 9 vikirushiya MediaWiki yakij vikoristovuyetsya dlya zabezpechennya roboti Vikipediyi bulo prijnyato rishennya 10 11 pro zaluchennya movi Lua dlya rozrobki shabloniv Vikoristovuvana na toj chas sistema shabloniv ne vlashtovuvala rozrobnikiv cherez zajvu uskladnenist ta nizku efektivnist Integraciya Lua v MediaWiki pochalasya na pochatku travnya 2012 pislya vihodu relizu MediaWiki 1 19 ta migraciyi proyektu na sistemu upravlinnya pochatkovimi tekstami Git Shabloni dozvolyayut koristuvacham MediaWiki avtomatizuvati stvorennya tipovogo vmistu sho vklyuchayetsya v inshi storinki i stvoryuvati instrumenti dlya manipulyaciyi danimi peretvoryuyuchi viki tekst v yakus podobu movi programuvannya Narazi shabloni dlya MediaWiki stvoryuyutsya z vikoristannyam dodatkovoyi wiki rozmitki ta rozshirennya ParserFunctions sho stvoryuye istotni obmezhennya u funkcionalnosti j prizvodit do vitrat znachnih resursiv pri vikonanni Namir perejti do vikoristannya v shablonah povnocinnoyi movi programuvannya nazriv uzhe davno ale vinikla problema viboru rozgornulasya palka diskusiya mizh prihilnikami Javascript WikiScript i Lua U pidsumku peremogla Lua golovnim chinom zavdyaki tehnichno prostishij integraciyi v proyekt Sered inshih perevag bulo nazvano efektivna robota z pam yattyu visoka produktivnist zastosovuyetsya JIT kompilyaciya sho robit Lua shvidshoyu za PHP z vikoristannyam Zend kompaktnist i pochatkova oriyentaciya na efektivne vbudovuvannya v storonni zastosunki Robota nad eksperimentalnim prototipom na bazi Lua pochalasya u 2011 roci j pokazala sho mozhna istotno zbilshiti produktivnist sistemi shabloniv Vinoski Redaguvati Lua about https www lua org authors html The lua Open Source Project on Open Hub Languages Page 2006 d Track Q124688 https www lua org about html https www lua org license html The lua Open Source Project on Open Hub Licenses Page 2006 d Track Q124688 Lua 5 1 Reference Manual 2019 A Look at the Design of Lua New York Association for Computing Machinery 2018 ISSN 0001 0782 1557 7317 d Track Q1120519 Lua scripting Meeting 2012 01 25 Arhiv originalu za 26 travnya 2012 Procitovano 3 lyutogo 2012 Mailing List Archive Wikipedia Wikitech Moving forward with Lua Arhiv originalu za 4 lyutogo 2012 Procitovano 3 lyutogo 2012 Wikipedia budet ispolzovat Lua v kachestve yazyka dlya razrabotki shablonov opennet ru ros Arhiv originalu za 2 lyutogo 2012 Procitovano 3 lyutogo 2012 Posilannya RedaguvatiLuau sestrinskih Vikiproyektah nbsp Portal Programuvannya nbsp Lua na Meta viki nbsp Lua na MediaWiki nbsp Fajli u Vikishovishi Oficijnij sajt Arhivovano 2 zhovtnya 2019 u Wayback Machine angl Zavantazhiti Lua skompilovani fajli Arhivovano 31 travnya 2017 u Wayback Machine angl Cikl statej pro Lua v zhurnali Linux Format Arhivovano 20 zhovtnya 2017 u Wayback Machine ros Spisok dodatkiv sho vikoristovuyut Lua skladenij avtorami angl Vebsajt spilnoti koristuvachiv i avtoriv Lua Arhivovano 16 grudnya 2010 u Wayback Machine angl Lua wiki Arhivovano 11 zhovtnya 2008 u Wayback Machine angl lua l archive Arhivovano 4 listopada 2008 u Wayback Machine oficijnij spisok angl Luai Arhivovano 8 veresnya 2008 u Wayback Machine alternativnij interfejs dovidki angl Introducing Lua ONLamp com angl An Introduction to Lua GameDev net angl Interview with Roberto Ierusalimschy on Lua nedostupne posilannya z 07 06 2017 Computerworld angl V inshomu movnomu rozdili ye povnisha stattya Lua programming language angl Vi mozhete dopomogti rozshirivshi potochnu stattyu za dopomogoyu perekladu z anglijskoyi Divitis avtoperekladenu versiyu statti z movi anglijska Perekladach povinen rozumiti sho vidpovidalnist za kincevij vmist statti u Vikipediyi nese same avtor redaguvan Onlajn pereklad nadayetsya lishe yak korisnij instrument pereglyadu vmistu zrozumiloyu movoyu Ne vikoristovujte nevichitanij i nevidkorigovanij mashinnij pereklad u stattyah ukrayinskoyi Vikipediyi Mashinnij pereklad Google ye korisnoyu vidpravnoyu tochkoyu dlya perekladu ale perekladacham neobhidno vipravlyati pomilki ta pidtverdzhuvati tochnist perekladu a ne prosto skopiyuvati mashinnij pereklad do ukrayinskoyi Vikipediyi Ne perekladajte tekst yakij vidayetsya nedostovirnim abo neyakisnim Yaksho mozhlivo perevirte tekst za posilannyami podanimi v inshomovnij statti Dokladni rekomendaciyi div Vikipediya Pereklad Otrimano z https uk wikipedia org w index php title Lua amp oldid 39238412