Movatterモバイル変換


[0]ホーム

URL:


Preskočiť na obsah
WikipédiaSlobodná encyklopédia
Hľadať

Lua

z Wikipédie, slobodnej encyklopédie
Lua

Druhimperatívny,procedurálny
Dátum vzniku1993
PoužitieVšetky platformy
TvorcaRoberto Ierusalimschy
Waldemar Celes
Luiz Henrique de Figueiredo
ImplementácieLua,LuaJIT,LLVM-Lua,Lua Alchemy
DialektyMetalua,Idle,GSL Shell
Používané prípony.lua

Lua je odľahčený, imperatívny a procedurálnyprogramovací jazyk navrhnutý akoskriptovací jazyk s rozšírenousémantikou. Názov je odvodený zportugalského slova mesiac.

História

[upraviť |upraviť zdroj]

Lua vytvorili v roku1993Roberto Ierusalimschy,Luiz Henrique de Figueiredo aWaldemar Celes, členovia Computer Graphics Technology Group (Skupina technológie počítačové grafiky) na Pápežskej univerzite vRio de Janeiro vBrazílii. Verzie Lua pred verziou 5.0 boli uverejnené pod licenciou podobnouBSD licencii, od verzie 5.0 je Lua distribuovaný podlicenciou MIT.

Lua bol použitý v mnohých komerčných aplikáciach (napr. v dobrodružnej hre firmyLucasArtsEscape from Monkey Island a software ovládajúciroboty) rovnako ako v tých nekomerčných (Angband a jeho varianty). Medzi jeho najbližších príbuzných patríIcon pre jeho dizajn aPython pre jednoduchosť použitia aj pre ne-programátorov.

Vlastnosti

[upraviť |upraviť zdroj]

Jazyk Lua je určený ako rozširujúci alebo skriptovací jazyk a je dostatočne malý, aby se vošiel na najrôznejšie hostiteľské platformy. Podporuje iba malé množstvo atomárnych dátových štruktúr ako sú boolovské hodnoty, čísla (implicitne s dvojitou presnosťou plávajúcej čiarky) areťazce. Bežné dátové štruktúry ako súpole, množiny, hashovacie tabuľky, zoznamy a záznamy môžu byť reprezentované použitím jediné natívnej dátovej štruktúry - tabuľky, ktorá je v podstate heterogénnym asociatívnym poľom. Menné priestory a objekty môžu byť vytvorené taktiež za použitia tabuliek. Zahrnutím minimálneho počtu dátových typov sa Lua pokúša dosiahnuť rovnováhu medzi silou a veľkosťou.

Sémantika Lua môže byť rozširovaná a menená predefinovaním niektorých zabudovaných funkcií v metatabuľkách. Naviac Lua podporuje pokročilé vlastnosti, ako sú funkcie vyššieho rádu agarbage collector. Kombináciou mnohých týchto vlastností je možné v Lua písať ajobjektovo orientovanéprogramy.

Ukážka kódu

[upraviť |upraviť zdroj]

Ukážka klasického programu "Hello, World!":

print("Hello, World!")

Výpočetfaktoriálu pomocourekurzívneho volania funkcie:

functionfactorial(n)ifn<=0thenreturn1endreturnn*factorial(n-1)end

Vnútorné postupy

[upraviť |upraviť zdroj]

Programy v Lua nie sú priamo interpretované, ale sú kompilované do tzv.bytecode (čítaj bajtkód), ktorý je následne spustený na Luavirtual machine (virtuálnom stroji). Proces kompilácie je často pre používateľov transparentný a robí sa za behu programu. Dá sa však vyvolať offline za účelom zvýšenia výkonu alebo omedzenia veľkosti obrazu v pamäti hosťujúceho prostredia vynechaním kompilátoru.

Nasledujúci príklad ukazuje výpis bytecode vyššie popísanej funkcie pre výpočet faktoriálu (v Lua 5.1):

function<factorial.lua:1,7>(10instructions,40bytesat0x805ee50)1param,3slots,0upvalues,1local,3constants,0functions1[2]LE00-1;comparevalueto02[2]JMP2;toline53[3]LOADK1-2;14[3]RETURN125[6]GETGLOBAL1-3;factorial6[6]SUB20-2;-17[6]CALL1228[6]MUL1019[6]RETURN1210[7]RETURN01

Aplikácie

[upraviť |upraviť zdroj]

Lua sa uplatňuje predovšetkým v mnohých hrách, ako jeWorld of Warcraft,masívna onlinová multiplayerová hra na hrdinov, v ktorej si môžu používatelia prispôsobiť používateľské rozhranie, animácie postáv a vzhľad sveta práve v jazyku Lua, a sériiBaldur's Gate a videohreMDK2, kde je použitý ako skriptovací jazyk pre moduly. Taktiež sa objavuje v niektorýchopen source hrách, ako súBattle for Wesnoth,Daimonin a hry v štýleRogue:ToME aH-World. Skripty v jazyku Lua sú tiež využité v hráchWorms 3D,Worms 4: Mayhem aMafia II.Therescript, použitý k riadeniu vozidiel a animácií vThere, je mierne upravená verzia Lua.Správca okien Ion používa Lua pre svoje prispôsobovanie a rozširovanie. ProgramChat Mapper pre zapisovanie a ukladanie rozhovorov (napríklad medzi postavami v hrách) používa jazyk Lua k riadeniu rozhovoru. ProgramLuaTeX rozširuje primitívne príkazyTeXu o možnosť zadávania kódu v jazyku Lua.

Zoznam projektov, o ktorých sa vie, že používajú Lua, je umiestnenýna tejto stránke.

Knihy

[upraviť |upraviť zdroj]

Externé odkazy

[upraviť |upraviť zdroj]

Zdroj

[upraviť |upraviť zdroj]

Tento článok je čiastočný alebo úplný preklad článkuLua na českej Wikipédii.

Zdroj: „https://sk.wikipedia.org/w/index.php?title=Lua&oldid=7930429
Kategória:
Skrytá kategória:

[8]ページ先頭

©2009-2025 Movatter.jp