티스토리 뷰

[ Lua Script ] 


- 1993년 개발된 프로그래밍 언어. 이름은 달을 의미하는 포르투갈어 단어라고 한다. 스크립트 언어를 하나의 목적으로 가지고 있기 때문에 굉장히 작고 가벼운 인터프리터형 언어이다. 현재 안정버전은 5.3


태생 자체가 가벼운 스크립트 언어이며, C/C++에 접착시키기 매우 쉽다. 개발 과정에 있어서 재컴파일이나 리로딩없이 바로 설정 변화를 적용할 수 있는 점 때문에 특히 게임업계에서 많이 쓰인다.


- Python, Ruby 같은 스크립트 언어


- 다른 스크립트 언어보다 가볍다


- 프로그램에 내장되는 스크립트이다.


- 프로그램과 통신이 가능하다(데이터 교환, API 상호 호출)


- C, C++ 언어에 이식하기 편하다.


- 가비지 컬렉터가 있다.



* 가벼움


인터프리터(또는 후술할 JIT 컴파일러)의 용량이 300kb도 안 될 정도로 작고 굉장히 빠르다. 굉장히 적은 수의 데이터형만을 지원하긴 하지만 그만큼 가볍다. 다양한 프로그램에 쉽게 붙일 수 있는 이유도 용량과 속도의 부담이 적기 때문. 그러면서도 다양한 패러다임을 가지고 있는데, 절차적으로도, 객체지향적으로도, 함수형으로도 이용할 수 있다.



* 문법


- Lua의 변수는 기본적으로 전부 전역 변수. ex) suspect = 1(전역변수), local suspect = 1(지역변수)


- nil  => 다른언어의 Null과 같음. ex) suspect = nil


- boolean => true, false


- string => 문자열 처리에 강함(아직 Python에 익숙해서 Python이 더 좋은듯..)


- number => 정수와 소수 구분 X, 모든 숫자를 실수형으로 처리


- table => C++의 std:map, Python의 dict와 유사한데, Lua의 최고의 장점이라고 할 수 있다. number형과 string 형을 모두 인덱스 할 수 있고, 크기가 고정되어 있지 않으며, 값과 변수가 아닌 객체이다.

* 다른 언어와 달리 0이 아닌, 1부터 시작한다.


- 명령문 (if)


if (조건식) than (실행문)

else if (조건식) than (실행문)

else (실행문)

end


- 명령문 (while)


while (조건식) do

(실행문)

end


- 명령문 (repeat)


C++의 do ~ while과 유사


repeat 

 (실행문)

until (조건식)


- 명령문 (numberic for)


for (초기화), (조건식), (증감) do

 (실행문)

end


증감을 생략하면 자동으로 1씩 증가


- 명령문 (generic for)


table의 요소를 한 번에 하나씩 접근할 때 주로 사용


pairs() / ipairs() 함수와 함께 사용


ex) days = {"a", "b", "c"}

     for index, value in pairs(days) do

         print(index, value)

    end


result :  1  a

           2  b

           3  c



- 함수 


function 함수이름(인자)

  함수내용..

  return 반환값

end



[ 설치 방법 ]


1. 아래의 좌표에서 다운로드를 받는다.


https://code.google.com/p/luaforwindows/


2. 다운로드 받은 설치파일을 실행하여 설치 하기




Telegram을 이용해서 Bot을 하나 만들어보려고 계획중에 Lua Script를 알게 되었습니다.

Python 찬양자인 저로서는 Lua가 그렇게 끌리진 않지만, Telegram Bot을 만들 때 사용해보려고 합니다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함