개발/Tool

[Lua]begin

gonGon 2009. 2. 11. 15:18

Lua 라는 언어가 있다.
처음 알게 된 것은 WOW를 통해서이다.
addon을 만들어 게임에서 실행시킬 수 있는데 addon을 Lua로 만든다.

이처럼 Lua는 스스로 실행하지 않고 embeded의 형식으로, Lua를 기동시킬 다른 무언가에 포함시켜서 사용하는데 메인이 되는 무언가를' host'라고 한다.
배포판에는 독립 실행이 가능한 Interpreter가 포함되어 있다.

공식 및 참조 사이트는 아래와 같다.

공식 사이트 : http://www.lua.org
매뉴얼 : http://www.lua.org/manual/5.1/manual.html
참조사이트 : http://www.redwiki.net/wiki/wiki.php/Lua
                  http://www.redwiki.net/wiki/wiki.php/LUA%20Tutorial?MONIWIKI=e0d0f032a62b2f9c0cd4b576b387ed97 [fast rerview - 한글]
                  http://www.redwiki.net/wiki/wiki.php/lua/%B0%FA%B0%C5%B0%A3%B4%DC%C1%FA%C0%C7%C0%C0%B4%E4?MONIWIKI=e0d0f032a62b2f9c0cd4b576b387ed97 [질의응답 - 한글]
                  http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/  [library]
                  http://blua.sourceforge.net/ [IDE]
                  http://lua-users.org/wiki/LuaDirectory [wiki top level document directory]

study Lua : http://lua-users.org/wiki/LearningLua
                 http://www.lua.org/pil/
FAQ : http://lua-users.org/wiki/LuaFaq

설치해 보자.
먼저 OS별 Lua를 다운받는다.
http://lua-users.org/wiki/LuaBinaries
ps2 버전도 있다. window버전은 Luaforge와 googlecode에서 다운받을 수 있다.
튜토리얼도 참고하자.
윈도우용 exe 파일을 더블클릭하고 Next만 눌러주면 끝난다.

실행시키면 아래와 같이 '>' prompt를 가진 console을 볼 수 있다.

이 후의 과정은 Tutorial을 보면서 진행하자.

Lua Types Tutorial

Numbers - 사칙연산(+, -, 이 가능하다. 기본적으로 float 타입이다. 이것은 소스(luaconf.h)에서 single float, long 등으로 바꿀 수 있다.
String - String간 concatenation은 .. 을 사용한다. + 를 쓰면 에러가 난다.
Boolean - true 또는 false를 가진다.
Tables - 다른 Object들을 담을 수 있는 자료구조. 일종의 배열처럼 작동하는데 모든 Object를 담을 수 있다.
functions - 키워드 'function' ~ 'end' 로 작성한다. function도 변수에 할당할 수 있는데 할당 후에는 '변수()'와 같이 사용한다.
nil - java의 null과 같다. 변수에 nil을 할당하면 변수를 없애는 효과를 얻을 수 있다.
Userdata - C나 file핸들러 등 외부의 object를 참조할 때 쓰인다.
Thread - 현재 context에 독립적인 context를 실행할 수 있다. 말 그대로 thread처럼 작동.

Dynamic typing
변수(variable)선언 시에는 value만을 할당하고 type을 따로 명시하지 않는다. value 자체로 type 정보를 가지고 있다고 본다.
casting은 자동으로 Lua 내부에서 처리한다.
context에서 변수의 type은 inline 함수 type( )을 사용하여 알 수 있다.