For faster navigation, this Iframe is preloading the Wikiwand page for Lua.

Lua

Wikipediasta

Lua
Paradigma proseduraalinen, funktionaalinen, olio-ohjelmointi
Tyypitys heikko, dynaaminen
Muistinhallinta automaattinen
Julkaistu 1993
Kehittäjä Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo
Vakaa versio 5.4.7[1] ()
Verkkosivu www.lua.org
Lisenssi MIT

Lua on kevyt ja kooltaan pieni skriptikieli. Se on tarkoitettu lähinnä ohjelmien helppoon laajentamiseen, mutta sillä voi myös tehdä laajempiakin kokonaisuuksia. Kielen nimi tulee portugalin sanasta lua, joka tarkoittaa kuuta. Luan logona onkin kuu.

Lua on pääasiassa proseduraalinen kieli, mutta Lua tukee funktionaalisesta ohjelmoinnista ja olio-ohjelmoinnista tunnettuja ominaisuuksia. Luassa on muun muassa ensimmäisen kertaluokan funktiot täydellä leksikaalisella näkyvyydellä. Muita kielen ominaisuuksia ovat assosiatiiviset taulukot, vuoroittaisrutiinit sekä metataulut. Kielessä on mahdollista käyttää moniperintää.[2]

Lua on julkaistu MIT-lisenssillä, joka sallii hyvin vapaan käytön jopa kaupallisiin tarkoituksiin. Luaa käytetäänkin paljon erilaisissa sovellusohjelmissa (esim. VLC, Lightroom) ja tietokonepelien sisäisenä skriptikielenä (esim. World of Warcraft).[3] Neovim-tekstieditori mahdollistaa lisäosien ja konfiguraation kirjoittamisen Vimscriptin lisäksi Lualla.[4]

Lua on suunniteltu helposti yhdistettäväksi muihin ohjelmointikieliin. Alkuperäisessä toteutuksessa on rajapinta, jota voi käyttää C- ja C++-ohjelmointikielillä. Tämän lisäksi rajapintoja löytyy muun muassa Pascalille, .NET:lle sekä Adalle.

Kielen edeltäjiä ovat Petrobrasin kehittämät DEL (Data Entry Language) ja SOL (Simple Object Language).[5]

Lua käännetään omalle virtuaalikoneelle. Ohjelmat voi kääntää virtuaalikoneen binääreiksi, mutta yleisempi käyttötapa on, että Lua-kääntäjä kääntää ohjelman muistiin ja suorittaa sen suoraan virtuaalikoneessa. Luan virtuaalikone on rekisteripohjainen.

Kielessä ei ole C-kielen kaltaista switch-lausetta, mutta vastaava toiminnallisuus voidaan toteuttaa käyttämällä hakutaulua (lookup-taulua) apuna.[6]

Esimerkkiohjelma tulostaa rivin "Hei maailma!":

print("Hei maailma!")

Seuraava ohjelma laskee annetun luvun kertoman:

-- Kertoma-funktio
function fact (n)
  if n == 0 then
    return 1
  else
    return n * fact(n-1)
  end
end

print("Anna luku:")
a = io.read("*number")   -- Lue luku
print(fact(a))

Kommentti alkaa kahdella viivalla, useammalle riville ulottuva kommentti merkitään hakasulkeisiin.

-- Tämä on yksirivinen kommentti
print("Hei maailma!")
--[[ Tämä on kommentti,
 joka kattaa useamman rivin
]]
print("Hei maailma!")
  1. [ANN] Lua 5.4.7 now available, (viitattu ). Tieto on haettu Wikidatasta.
  2. 16.3 – Multiple Inheritance lua.org. Viitattu 14.9.2017.
  3. Lua: about lua.org. Viitattu 9.11.2012.
  4. Home - Neovim neovim.io. Viitattu 6.6.2024.
  5. The evolution of an extension language: a history of Lua lua.org. Viitattu 11.3.2020. (englanniksi)
  6. Switch Statement lua-users.org. Viitattu 8.8.2019. (englanniksi) 

Aiheesta muualla

[muokkaa | muokkaa wikitekstiä]
{{bottomLinkPreText}} {{bottomLinkText}}
Lua
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?