목차

 

『프로그래밍 루아』(개정판)

 

1부 루아 언어

1장 시작하기

__1.1 청크

__1.2 어휘 규정

__1.3 전역 변수

__1.4 독립 실행형 인터프리터

__연습 문제

 

2장 타입과 값

__2.1 Nil

__2.2 불리언

__2.3 실수

__2.4 문자열

____2.4.1 문자열 상수

____2.4.2 구간 문자열

____2.4.3 강제 변환

__2.5 테이블

__2.6 함수

__2.7 유저데이터와 스레드

__연습 문제

 

3장 표현식

__3.1 산술 연산자

__3.2 비교 연산

__3.3 논리 연산자

__3.4 이어 붙이기

__3.5 길이 연산자

__3.6 연산 우선순위

__3.7 테이블 생성자

__연습 문제

 

4장 문장

__4.1 할당문

__4.2 지역 변수와 구역

__4.3 제어 구조

____4.3.1 if then else문

____4.3.2 while문

____4.3.3 repeat문

____4.3.4 수치 for문

____4.3.5 일반 for문

__4.4 break, return, goto

__연습 문제

 

5장 함수 49

__5.1 여러 값 반환

__5.2 가변 인자 함수

__5.3 이름 붙인 인자

__연습 문제

 

6장 루아 함수의 내부

__6.1 클로저

__6.2 비전역 함수

__6.3 꼬리 호출

__연습 문제

 

7장 반복자와 일반 for문

__7.1 반복자와 클로저

__7.2 일반 for문의 의미

__7.3 상태가 없는 반복자

__7.4 복잡한 반복자

__7.5 진짜 반복자

__연습 문제

 

8장 컴파일과 실행, 오류 처리

__8.1 컴파일

__8.2 미리 컴파일된 코드

__8.3 C 언어로 작성한 코드

__8.4 오류 처리

__8.5 오류 처리와 예외

__8.6 오류 메시지와 역추적

__연습 문제

 

9장 코루틴

__9.1 코루틴의 기초

__9.2 파이프와 필터

__9.3 반복자로서의 코루틴

__9.4 비선점형 멀티스레딩

__연습 문제

 

10장 종합 예제

__10.1 8-여왕말 퍼즐

__10.2 가장 많이 나오는 단어 찾기

__10.3 마르코프 연쇄 알고리즘

__연습 문제

 

2부 테이블과 객체

11장 자료구조

__11.1 배열

__11.2 행렬과 다차원 배열

__11.3 링크드 리스트

__11.4 큐와 이중 큐

__11.5 집합과 다중 집합

__11.6 문자열 버퍼

__11.7 그래프

__연습 문제

 

12장 데이터 파일과 영속성

__12.1 데이터 파일

__12.2 직렬화

____12.2.1 순환 구조가 없는 테이블 저장하기

____12.2.2 순환 구조를 가진 테이블 저장하기

__연습 문제

 

13장 메타테이블과 메타메서드

__13.1 산술 메타메서드

__13.2 관계 메타메서드

__13.3 라이브러리에 정의된 메타메서드

__13.4 테이블 접근 메타메서드

____13.4.1 __index 메타메서드

____13.4.2 __newindex 메타메서드

____13.4.3 기본값을 가진 테이블

____13.4.4 테이블 접근 추적하기

____13.4.5 읽기 전용 테이블

__연습 문제

 

14장 환경

__14.1 전역 변수와 동적 이름

__14.2 전역 변수 선언

__14.3 비전역 변수

__14.4 _ENV 이용하기

__14.5 _ENV와 load

__연습 문제

 

15장 모듈과 패키지

__15.1 require 함수

____15.1.1 모듈 이름 변경하기

____15.1.2 경로 탐색하기

____15.1.3 서처: 라이브러리 찾기

__15.2 루아에서 모듈을 작성하기 위한 기본 방법

__15.3 환경 이용하기

__15.4 하위 모듈과 패키지

__연습 문제

 

16장 객체지향 프로그래밍

__16.1 클래스

__16.2 상속

__16.3 다중 상속

__16.4 내부 상태 보호

__16.5 단일 메서드 접근법

__연습 문제

 

17장 약한 참조 테이블과 마무리하기

__17.1 약한 참조 테이블

__17.2 기억해 두기

__17.3 객체 속성

__17.4 기본값을 가진 테이블 다시 보기

__17.5 쓰고 버리는 테이블

__17.6 마무리하기

__연습 문제

 

3부 표준 라이브러리

18장 수학 라이브러리

__연습 문제

 

19장 비트 연산 라이브러리

__연습 문제

 

20장 테이블 라이브러리

__20.1 원소의 삽입과 제거

__20.2 정렬

__20.3 이어 붙이기

__연습 문제

 

21장 문자열 라이브러리

__21.1 기본 문자열 함수

__21.2 패턴 일치 함수

____21.2.1 string.find 함수

____21.2.2 string.match 함수

____21.2.3 string.gsub 함수

____21.2.4 string.gmatch 함수

__21.3 패턴

__21.4 캡처

__21.5 치환하기

____21.5.1 URL 인코딩

____21.5.2 위치 캡처

__21.6 알아두기

__21.7 유니코드

__연습 문제

 

22장 입출력(I/O) 라이브러리

__22.1 단순 입출력 모델

__22.2 완전 입출력 모델

____22.2.1 성능 향상 팁

____22.2.2 바이너리 파일

__22.3 기타 파일 함수

__연습 문제

 

23장 운영체제 라이브러리

__23.1 날짜와 시간

__23.2 기타 시스템 호출

__연습 문제

 

24장 디버그 라이브러리

__24.1 인트로스펙션 기능

____24.1.1 지역 변수에 접근하기

____24.1.2 비지역 변수에 접근하기

____24.1.3 다른 코루틴에 접근하기

__24.2 훅(Hooks)

__24.3 프로파일러

__연습 문제

 

4부 C API

25장 C API의 개요

__25.1 첫 예제

__25.2 스택

____25.2.1 스택에 원소 넣기

____25.2.2 원소 가져오기

____25.2.3 기타 스택 연산

__25.3 C API를 이용한 오류 처리

____25.3.1 애플리케이션 코드에서 발생하는 오류 처리

____25.3.2 라이브러리 코드에서 발생하는 오류 처리

__연습 문제

 

26장 루아를 설정 언어로 사용하기

__26.1 기초

__26.2 테이블 조작하기

__26.3 루아 함수 호출하기

__26.4 범용 호출 함수

__연습 문제

 

27장 루아에서 C 함수 호출하기

__27.1 C 함수

__27.2 컨티뉴에이션

__27.3 C 모듈

__연습 문제

 

28장 C 함수 작성법

__28.1 배열 다루기

__28.2 문자열 다루기

__28.3 C 함수에서 상태 저장하기

____28.3.1 레지스트리

____28.3.2 업밸류

____28.3.3 공유 업밸류

__연습 문제

 

29장 C에서 사용자 정의 타입 만들기

__29.1 유저데이터

__29.2 메타테이블

__29.3 객체지향 구현

__29.4 배열의 원소 사용하기

__29.5 경량 유저데이터

__연습 문제

 

30장 자원 관리

__30.1 디렉터리 반복자

__30.2 XML 파서

__연습 문제

 

31장 스레드와 상태

__31.1 다중 스레드

__31.2 루아 상태

__연습 문제

 

32장 메모리 관리

__32.1 메모리 할당 함수

__32.2 가비지 콜렉터

____32.2.1 가비지 콜렉터의 API

__연습 문제