Ero sivun ”Lua” versioiden välillä

Siirry navigaatioon Siirry hakuun
1 103 merkkiä lisätty ,  11. huhtikuuta 2025
Paranneltu ulkoasua. Mainittu LuaJIT. Lisätty lisäksi yksinkertaisempi esimerkkiohjelma.
p (→‎Aiheesta muualla: Lisätty PIL ja LuaRocks.)
(Paranneltu ulkoasua. Mainittu LuaJIT. Lisätty lisäksi yksinkertaisempi esimerkkiohjelma.)
 
Rivi 24: Rivi 24:
'''Lua''' on proseduaalinen ja olio-pohjainen skriptikieli, joka on suunniteltu ohjelmien toiminnallisuuden laajentamiseen. Kielellä voi myös tehdä omia itsenäisiä ohjelmia. Lua on totetutettu pienenä [[C]]-funktiokirjastona. Tämän ansiosta se toimii useilla käyttöjärjestelmillä. Automaatisen muistinhallinnan ja pienten muistivaatimuksiensa ansiosta sitä voi myös käyttää sulautetuissa järjestelmissä. Aivan kuten [[Python]] Lua-kieli on tulkattava ja se tarvitsee tulkin eli virtuaalikoneen. Lua on suunniteltu yhdistettäväksi muihin ohjelmointikieliin. Luodut ohjelmat voi kääntää virtuaalikoneen binääreiksi, mutta yleisin käyttötapa on kääntää ohjelma Lua:n muistiin ja suorittaa se suoraan virtuaalikoneessa. Lua-kieltä on käytetty monissa ohjelmissa kuten [[VLC]]:ssä, Lightroomissa ja peleissä mm. World of Warcraftissa.
'''Lua''' on proseduaalinen ja olio-pohjainen skriptikieli, joka on suunniteltu ohjelmien toiminnallisuuden laajentamiseen. Kielellä voi myös tehdä omia itsenäisiä ohjelmia. Lua on totetutettu pienenä [[C]]-funktiokirjastona. Tämän ansiosta se toimii useilla käyttöjärjestelmillä. Automaatisen muistinhallinnan ja pienten muistivaatimuksiensa ansiosta sitä voi myös käyttää sulautetuissa järjestelmissä. Aivan kuten [[Python]] Lua-kieli on tulkattava ja se tarvitsee tulkin eli virtuaalikoneen. Lua on suunniteltu yhdistettäväksi muihin ohjelmointikieliin. Luodut ohjelmat voi kääntää virtuaalikoneen binääreiksi, mutta yleisin käyttötapa on kääntää ohjelma Lua:n muistiin ja suorittaa se suoraan virtuaalikoneessa. Lua-kieltä on käytetty monissa ohjelmissa kuten [[VLC]]:ssä, Lightroomissa ja peleissä mm. World of Warcraftissa.


Esimerkki Linuxille sovitetusta Lua-virtuaalikoneesta [[C++]]-kielellä toteutettuna. Luodaan seuraavanlainen ohjelma.
'''LuaJIT''' on vaihtoehtoinen toteutus Lua-kielen versiosta 5.1 (LuaJIT sisältää myös eräitä lisäosia). Sen tekee erikoiseksi se, että se on toteutettu JIT-kääntäjällä, mikä takaa erittäin hyvän suorituskyvyn.
 
== Esimerkkejä ==
Yksinkertainen esimerkki.
<syntaxhighlight lang="lua">
#!/usr/bin/lua
 
local taulukko = {}
math.randomseed(os.time())
 
for i=1,20 do
    taulukko[i] = math.random(1, 10)
end
 
-- Taulukot alkavat indeksistä 1.
-- Tämän esimerkin lisäksi, taulukot toimivat myös kuten Perlin silput (eng. "hash") tai Pythonin sanakirjat.
-- Eli ne elävät tavallaan "kaksoiselämää".
-- Mutta ei kuitenkaan käytetä tätä ominaisuutta tässä esimerkissä.
 
local laskuri = 1
 
while laskuri <= 20 do
    if taulukko[laskuri] % 2 == 0 then
        print(taulukko[laskuri] .. " on parillinen!")
    end
    laskuri = laskuri + 1
end
</syntaxhighlight>
 
=== Luan käyttäminen C++ projektissa ===
Esimerkki Linuxille sovitetusta Lua-virtuaalikoneesta [[C++]]-kielellä toteutettuna. Luodaan seuraavanlainen C++-ohjelma.
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
extern "C"
extern "C"
Rivi 92: Rivi 122:
* [https://lua.org/pil/contents.html Programming in Lua (first edition) - Ilmainen e-kirja]
* [https://lua.org/pil/contents.html Programming in Lua (first edition) - Ilmainen e-kirja]
* [https://luarocks.org LuaRocks paketinhallintajärjestelmä Lualle]
* [https://luarocks.org LuaRocks paketinhallintajärjestelmä Lualle]
* [https://github.com/lunarmodules/luacheck luacheck - Lint-tyylinen ohjelma, jolla voi tarkistaa omat Lua-ohjelmat]
* [https://luajit.org LuaJIT-projektin kotisivut]


{{Pelinteko}}
{{Pelinteko}}
{{Ohjelmointikielet}}
{{Ohjelmointikielet}}
[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]
188

muokkausta

Navigointivalikko