본문 바로가기
Programming

Lua 기본 문법 익히기 (1)

by 드로니뚜벅이 2022. 11. 29.

로블록스(ROBLOX) 게임을 루아 언어로 만든다고 하여 급 관심이 생긴 언어입니다.

루아(Lua, EncodeLua) 프로그래밍 언어는 가벼운 명령형/절차적 언어로, 확장 언어로 쓰일 수 있는 스크립팅 언어를 주목적으로 설계되었습니다. 그러나 알고리즘적 설계(테이블 등)가 많이 내재되어 있고 인터프리터(언어 실행기)로만 코드뭉치를 실행할 수 있으므로, 선언형 언어로도 볼 수 있습니다. 루아는 "달"을 의미하는 포르투갈어 단어이다.

 

기능

루아(Lua)는 확장 언어와 스크립트 언어를 지향하고 있으며, 충분히 작기 때문에 많은 플랫폼에서 사용할 수 있습니다. 루아는 불 값, 숫자(기본적으로 배정밀도 실수형), 그리고 문자열과 같은 적은 수의 기본 데이터형만을 지원하며, 배열, 집합, 해시 테이블, 리스트, 레코드와 같은 전형적인 데이터 구조는 모두 연관 배열과 유사한 루아의 테이블 자료형으로 구현하고 있습니다. 이름 공간과 객체들 역시 이 테이블을 사용하여 표현할 수 있습니다. 최소한의 자료형을 사용함으로써 루아는 성능과 크기 사이의 균형을 맞추려는 시도를 하였습니다.

루아에서 연산식들의 의미는 메타 테이블에 있는 내장 함수들을 재지정해서 확장하거나 변경할 수 있습니다. 또한 루아는 고차원 함수나 가비지 콜렉션과 같은 고급 기능을 지원하고 있습니다. 이러한 많은 기능들을 사용하면 루아에서 객체 지향적인 프로그램을 만들 수 있습니다.

 

라이선스

5.0 버전 이전의 루아는 BSD 라이선스와 비슷한 라이선스에 따라 공개되었고, 5.0부터는 MIT 라이선스에 따라 공개되고 있어서, 개인적으로나 상업적으로나 허락없이 사용하는 것이 가능하며, GNU같은 저작권 표시가 요구되지 않습니다.

 

Lua 언어 설치하기

기본 문법을 배우기 전에 Lua를 설치해 보겠습니다. (Ubuntu 20.04 기준으로 설명한 점 양해해 주세요)

$ sudo apt update
$ sudo apt install lua5.3
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  lua5.3
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 110 kB of archives.
After this operation, 414 kB of additional disk space will be used.
Get:1 http://mirror.kakao.com/ubuntu focal/universe amd64 lua5.3 amd64 5.3.3-1.1ubuntu2 [110 kB]
Fetched 110 kB in 0s (796 kB/s)
Selecting previously unselected package lua5.3.
(Reading database ... 342947 files and directories currently installed.)
Preparing to unpack .../lua5.3_5.3.3-1.1ubuntu2_amd64.deb ...
Unpacking lua5.3 (5.3.3-1.1ubuntu2) ...
Setting up lua5.3 (5.3.3-1.1ubuntu2) ...
update-alternatives: using /usr/bin/lua5.3 to provide /usr/bin/lua (lua-interpreter) in auto mode
update-alternatives: using /usr/bin/luac5.3 to provide /usr/bin/luac (lua-compiler) in auto mode
Processing triggers for man-db (2.9.1-1) ...

$ lua -v       
Lua 5.3.3  Copyright (C) 1994-2016 Lua.org, PUC-Rio
$

 

Lua 최신 버전으로 설치하기

현재(2022년 11월) 기준 최신 버전은 5.4.4입니다. 따라서, 최신 버전으로 업데이트해서 진행하겠습니다.

$ sudo apt install build-essential libreadline-dev
$ mkdir lua_build
$ cd lua_build
$ curl -R -O http://www.lua.org/ftp/lua-5.4.4.tar.gz
$ tar -zxf lua-5.4.4.tar.gz
$ cd lua-5.4.4
$ make linux test
$ sudo make install
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.4 /usr/local/lib/lua/5.4
cd src && install -p -m 0755 lua luac /usr/local/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /usr/local/include
cd src && install -p -m 0644 liblua.a /usr/local/lib
cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1

$ lua -v
Lua 5.4.4  Copyright (C) 1994-2022 Lua.org, PUC-Rio
$

 

참고사이트

 

 

'Programming' 카테고리의 다른 글

Julia 프로그래밍 언어 소개  (0) 2023.06.16
프로그래밍 언어 순위  (0) 2023.06.02
YAML & yaml-cpp 라이브러리 설치  (0) 2022.09.05
protobuf 사용하기  (0) 2022.05.09
LLVM  (0) 2022.04.11