GNU Free Documentation License . .

Lua

: ,
Lua
Lua-logo-nolabel.svg
:

:
,
,
,
- ()

:

, JIT

:

1993

():

,
,

:

5.2.0 (16 2011)

:

, ("")

:

Lua, LuaJIT, LLVM-Lua, LuaCLR, Nua, Lua Alchemy .[1]

:

MetaLua

:

Scheme, SNOBOL, Modula, CLU, C++

:

Io, GameMonkey, Squirrel, Dao, MiniD

MIT

:

www.lua.org

Lua ([́], . «» , Tecgraf -- (Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil). , .

, JavaScript, Lua . Lua , - ( ) ,  . . ( JavaScript)  .

Lua «», «LUA» .

( 2012) Lua Mediawiki[2] (. Lua scripting).

[]

Lua Tecgraf -- (Computer Graphics Technology Group, Pontifícia Universidade Católica do Rio de Janeiro), 1993 . , Luiz Henrique de Figueiredo Waldemar Celes. Lua , .

[]

Lua . , , , .

, Lua , .

[]

, Python, Ruby Icon, .

 x, y = y, x

[]

Lua . . Lua , .

Lua :

  1. nil ()
  2. boolean ()
  3. number ()
  4. string ()
  5. function ()
  6. userdata ( )
  7. thread ()
  8. table ()

Nil  nil [ ],   . Boolean false () true (). nil false , . Number (double), . String . Lua 8- , ('\0'). .

[]

Lua , , , , . Lua   (, ). , nil.

[]

Lua , :

function makeaddfunc(x)
  --    ,   x  
  return function(y)
    --      x,    ,
    --     ,    , 
    -- Lua  .
    return x + y
  end
end
plustwo = makeaddfunc(2)
print(plustwo(5)) --  7

, makeaddfunc, x, x. Lua, .

[]

hello world Lua :

print("Hello World!")

S.T.A.L.K.E.R LUA ( ):

function select_actor_community(actor, npc)
        db.actor:set_character_community("military", 0, 0)  --     ""
end

LUA .

, Ada, SQL VHDL:

--   Lua         .
--[[     
         . ]]

  :

function factorial(n)
  if n == 0 then
    return 1
  else
    return n * factorial(n - 1)
  end
end

:

for i = 1,5 do
     -- Statements
end

, print:

do
  local oldprint = print   --    print  oldprint
  function print(s)        --   print
    if s == "foo" then
      oldprint("bar")
    else
      oldprint(s)
    end
  end
end

print , Lua , print , print. Lua , , .

Lua , Lua. «» . n, fibs[n] n- .

fibs = { 1, 1 }                          --    fibs[1]  fibs[2].
setmetatable(fibs, {                     
  __index = function(name, n)            --  ,  fibs[n]  .
    name[n] = name[n - 1] + name[n - 2]  --    fibs[n].
    return name[n]                       
  end
})

[]

, Lua - -. -  , , . Lua ( Java .NET).

Lua , .

, , JIT Lua  LuaJIT[3]. llvm-lua[4], LLVM, .

[]

,   , , Lua «» / .

[]

Lua LucasArts, Grim Fandango[5]. HOPL (.). , 1997 , Grim Fandango, , 1996 Dr. Dobbs Journal, SCUMM Lua[6]. GrimE, LucasArts  Escape from Monkey Island.

2003 GameDev.net Lua [7].

, Lua World of Warcraft.[8][9] Lua - Enigma[10].

[]

[] IDE

[]

  1. Lua Implementations  (.). Lua-users enci. 24 2011. 18 2009.
  2. Wikimedia Foundation Report, April 2012  (.). 10 2012.
  3. The LuaJIT Project
  4. llvm-lua. JIT/Static compiler for Lua using LLVM on the backend.
  5. Bret Mogilefsky Lua in Grim Fandango. 4 2012. 9 2011.
  6. HOPL, 2007, . 11
  7. Which language do you use for scripting in your game engine?. GameDev.net  Poll Results
  8. Paul Emmerich Beginning Lua with World of Warcraft Add-ons.  Apress, July 2009.  ISBN 1430223715
  9. James Whitehead II, Bryan McLemore, and Matthew Orlando World of Warcraft Programming.  Wiley, May 2008.  ISBN 0470229810
  10. Tom Gutschmidt Ch. 8. The Lua Game Community Game Engines // Game Programming with Python, Lua, and Ruby.  Premier Press, 2003.  472 p.  ISBN 1-59200-079-7
  11. CronosPRO

[]

Lua-

[] Lua