1 / 15

Lua

Mikk Lauringson 2007. Lua. Mis on Lua?. Võimas, kiire, kerge(kaaluline), integreeritav skriptimiskeel. Interpreteerib baitkoodi registritel baseeruvale virtuaalmasinale. Kirjutatud puhtas C keeles „Lua“ tähendab portugali keeles „kuu“ Autorid:

holmes-king
Download Presentation

Lua

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mikk Lauringson 2007 Lua

  2. Mis on Lua? • Võimas, kiire, kerge(kaaluline), integreeritav skriptimiskeel. • Interpreteerib baitkoodi registritel baseeruvale virtuaalmasinale. • Kirjutatud puhtas C keeles • „Lua“ tähendab portugali keeles „kuu“ • Autorid: • Pontifical Catholic University of Rio de Janeiro (PUC-RIO)‏ • Roberto Ierusalimschy • Waldemar Celes • Luiz Henrique de Figueiredo • Ainuke arengumaalt pärit programmeerimiskeel, mis on saavutanud globaalse tähtsuse.

  3. Miks kasutada Lua? • Lua on kiire • Mitmed testid näitavad, et Lua on kiireim keel interpreteeritavate skriptimiskeelte maailmas. • Lua on porditav • Kõigile platvormidele, millel on C kompilaator. • Lua on integreeritav (embeddable)‏ • Lihtne ja hästi dokumenteeritud API. • Lihtne täiendada teistes keeltes kirjutatud teekidega. • Lihtne täiendada teistes keeltes kirjutatud programme. • Lua on lihtne ja võimas • Meta-mehhanismid featuuride implementeerimiseks. • Näiteks: Lua ei ole päris OO, aga meta-mehhanismide abil saab implementeerida klassid ja pärimise. • Lua on tasuta • MIT litsents

  4. Näited Lua kasutamistest • Programmid • Adobe Lightroom (üle 40% Lua)‏ • Ethereal / Wireshark • Mängud • World of Warcraft • The Sims • Multi Theft Auto: San Andreas • FarCry • There • Baldur's Gate • Grim Fandango • Escape From Monkey Island • Firmad • Adobe, Disney, Electronic Arts, Intel, LucasArts, Microsoft, Nasa, Olivetti, Philips

  5. Ajalugu • 1.0 aastal 1993 • 1.1 esimene avalik versioon • 2.1 tasuta kõigile • 4.0 enam ei ole sisseehitatud funktsioone: kõik funktsioonid kasutavad ametlikku API-t • 5.0 MIT litsents • 5.1.2 hetkel viimane versioon (02 Apr 2007)‏

  6. Ajalugu

  7. Operaatorid • Binaarsed operaatorid • + | - | * | / | ^ | % | .. • < | <= | > | >= | == | ~= • and | or • Unaarsed operaatorid • - | not | #

  8. Süntaks • Nimed (identifikaatorid)‏ • Suvalised tähed, numbrid ja alakriips • Ei tohi alata numbriga • Reserveeritud võtmesõnad • and, break, do, else, elseif, end, false, for, function, if, in, local, nil, not, or, repeat, return, then, true, until, while • Lua on tõstutundlik: • and on reserveeritud, aga And ja AND on 2 erinevat lubatud identifikaatorit • --kommentaar

  9. Andmetüübid ja muutujad • Dünaamilised andmetüübid • Muutujatel pole tüüpe, ainult väärtustel on tüübid. • 8 baastüüpi • nil, boolean, number, string, function, userdata, thread, ja table • Coercion • Aritmeetiline operatsioon üritab ette antud stringi muuta numbriks ja vastupidi. • Muutujad • Globaalsed, lokaalsed ja tabeli väljad • Kui pole määratud, siis on vaikimisi globaalsed • Laused on sarnased C ja Pascaliga • Juhtstruktuurid • if, while, repeat

  10. Tabelid • Tabel (assotsiatiivne massiiv) on Lua keeles keskses rollis roll • Tabelite abil realiseeritakse lihtsalt ja tõhusalt moodulid, objektid, massiivid, hulgad, listid ja teised andmestruktuurid. • Tabeli indeksid algavad 1-st, mitte 0-st

  11. Näited • Number • x = 7 • String • who = "Lua user" • Konkatenatsioon • print("hello " .. who)‏ • Tabel • x = {} • x = { value = 123, text = "hello" } • Boolean • x = true • Funktsioon • function foo() print("hello") end --deklareerimine • foo() --väljakutsumine

  12. Näited • Mitme muutuja määramine • x, y = 2, "there" • Stringi defineerimise võimalused • a = "hello" • b = 'hello' • c = [[hello]]

  13. Tabel massiivina • t = { 1,1,2,3,5,8,13 } • print( t[1] )‏ • >1 • Tabeli suurus • print( # t)‏ • >7 • Tabel sõnastikuna • t = { apple="red", orange="orange", banana="yellow" } • Segatud tabeli konstruktsioon • t = { 2,4,6, language="Lua", version="5.1" }

  14. Näited • Hello world print("Hello world")‏ • Faktoriaal (rekursiivne)‏ function factorial(n)‏ if n == 0 then return 1 end return n * factorial(n - 1)‏ end

  15. Lingid • Lua koduleht • http://www.lua.org • Lua käsiraamat • http://www.lua.org/manual/ • Web Lua • http://doris.sourceforge.net/lua/weblua.php • The evolution of Lua • http://www.tecgraf.puc-rio.br/~lhf/ftp/doc/hopl.pdf

More Related