Muokataan sivua Lua

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
{{Perustietoa}}
{{Perustietoa}}
{{Ohjelmointikieli
| nimi            = Lua
| logo            = [[Tiedosto:Lua-Logo.svg|150px]]
| paradigma      = proseduaalinen, funktionaalinen, oliopohjainen
| tyypitys        = heikko, dynaaminen
| suoritusmalli  = tulkattava, käännettävä
| muistinhallinta = [[wikipedia:fi:Automaattinen_roskienkeräys|automaattinen]]
| tekijä          =
| kehittäjä      = Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo
| moottori        =
| ensijulkaisu    = 1993
| vakaaversio    = 5.4.4
| vakaapvm        = 26. tammikuuta 2022 [https://www.lua.org/versions.html#5.4]
| kehitysversio  =
| kehityspvm      =
| ohjelmoitu      =
| käyttöliittymä  =
| tyyppi          = ohjelmointikieli, kehitystyökalut
| lisenssi        = [[MIT]]
| kotisivu        = [https://www.lua.org/ lua.org]
| lähdekoodi      = [https://www.lua.org/ftp/ lua.org/ftp/]
}}
'''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.
'''Lua''' on proseduaalinen ja olio-pohjainen scriptikieli, joka on suunniteltu ohjelmien toiminnallisuuden laajentamiseen. Kielellä voi muös tehdä omia itsenäisiä ohjelmia. Lua on totetutettu pienenä C-functiokirjastona. 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.
<syntaxhighlight lang="c">
extern "C"
{
#include <lua5.2/lua.h>
#include <lua5.2/lauxlib.h>
#include <lua5.2/lualib.h>
#include <stdlib.h>            /* For function exit() */
#include <stdio.h>            /* For input/output */
#include <string.h>
}
 
// Aliohjelma virhetilanteen tulostamista varten
void bail(lua_State *L, const char *msg){
fprintf(stderr, "\nFATAL ERROR:\n  %s: %s\n\n",
msg, lua_tostring(L, -1));
exit(1);
}
 
int main(void)
{
// Luodaan LUA-virtuaalikone.
lua_State *L;
L = luaL_newstate();
 
// Otetaan LUA:n kirjastot käyttöön.
luaL_openlibs(L);
 
// Ladataan skipti1.lua käyttöön, mutta ei suoriteta sitä
if (luaL_loadfile(L, "scripti1.lua"))
  // Virhe jos tiedostoa ei voi lukea
  bail(L, "luaL_loadfile() failed");
 
// Suorita skipti1.lua
if (lua_pcall(L, 0, 0, 0))
  // Virhe jos tiedoston sisällössä on virhe
  bail(L, "lua_pcall() failed");
lua_getglobal(L, "tellme");      /* Mikä funktio suoritetaan*/
 
    if (lua_pcall(L, 0, 0, 0))    /* Suoritetaan funktio*/
  bail(L, "lua_pcall() failed"); /* Virhe jos lua tiedostossa on virhe.*/
   
lua_close(L);
return 0;
}
</syntaxhighlight>
 
Skripti1.lua sisältö voisi olla esimerkiksi tällainen.
<syntaxhighlight lang="lua">
function tellme()
io.write("Tämä tuloste luetaan Lua tellme-funktion kautta.\n")
end
</syntaxhighlight>
 
Tiedosto <tt>ohjelma.cpp</tt> voidaan kääntää Linuxilla seuraavasti:
g++ ohjelma.cpp -o ohjelma


==Katso myös==
==Katso myös==
Rivi 89: Rivi 7:


==Aiheesta muualla==
==Aiheesta muualla==
* [http://www.lua.org/ Ohjelman kotisivu]
* [http://yaamboo.com/suomipelit/artikkeli.php?id=52 Suomipelit - LUA:n alkeet]
* [http://yaamboo.com/suomipelit/artikkeli.php?id=52 Suomipelit - LUA:n alkeet]


{{Pelinteko}}
{{Ohjelmointikielet}}
[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)
Noudettu kohteesta ”https://www.linux.fi/wiki/Lua