밑바닥부터 만드는 컴파일러 in Go
Description
맨땅에서 시작해 완전히 작동하는 컴파일러 구현까지

이 책은 《밑바닥부터 만드는 인터프리터 in Go》의 후속편입니다. 인터프리터와 컴파일러의 가장 큰 차이점은 중간코드, 즉 목적코드의 존재 유무에 있습니다. 전편에서 만들어둔 파싱 데이터를 바이트코드라는 목적코드로 변환하고, 이것을 스택 기반의 가상 머신으로 실행하고 확장하는 과정을 단계적으로 보여줍니다.

이 책은 전편처럼 테스트 주도 개발 방법을 이용해, 컴파일러의 작은 부품에서부터 시작하여 점차 고급 기능으로 확장해갑니다. 이런 전개의 장점은 컴파일러의 구조와 코드를 독자가 매우 쉽게 이해하게 된다는 점입니다. 레고 부품을 조립해 하나의 완성된 테마를 만들 때처럼, 구현물이 테스트를 통과할 때마다 컴파일러의 동작 원리를 깨치는 재미가 제법 쏠쏠합니다. 호스트 언어인 Go를 깊이 있게 다루는 경험도 이 책이 주는 또 하나의 선물입니다.

저자

토르슈텐발

저자:토르슈텐발(ThorstenBall)
단순함,미니멀리즘,있는그대로의모습,정직함,본질을가치있게생각한다.
그리고유머.유머는진지함만큼이나중요한가치로여긴다.
Sourcegraph에서소프트웨어엔지니어로일하고있으며,
다양한주제를깊게파고들기를좋아해이를통해더깊은이해를얻고자한다.
저자의블로그:https://thorstenball.com/

역자:박재석
동대문패션플랫폼스타트업인'와이즈패션'에서일하고있다.
개발자로은퇴하고그이후에도계속개발하면서사는것이목표다.

목차

옮긴이의글
감사의말
Introduction

1장컴파일러와가상머신
1-1컴파일러
1-2가상머신과실제머신
1-3앞으로나아갈방향,가상머신과컴파일러의쌍대성

2장HelloBytecode!
2-1첫번째명령어
2-2스택으로덧셈하기
2-3REPL연동하기

3장표현식컴파일하기
3-1스택정리하기
3-2중위표현식
3-3불
3-4비교연산자
3-5전위표현식

4장조건식
4-1점프
4-2조건식컴파일하기
4-3점프명령어실행
4-4돌아왔구나,NULL!

5장이름을추적하는방법
5-1구현계획
5-2바인딩컴파일하기

6장문자열,배열,해시
6-1문자열
6-2배열
6-3해시
6-4인덱스연산자구현하기

7장함수
7-1시작은단순한함수부터
7-2지역바인딩
7-3함수호출인수

8장내장함수
8-1코드변경은간편하게
8-2코드변경계획
8-3내장함수용스코프
8-4내장함수실행

9장클로저
9-1근본적인문제
9-2구현계획
9-3모든것을클로저로
9-4자유변수컴파일과환원
9-5런타임에서클로저만들기
9-6재귀적클로저

10장갈무리

더읽을거리
참고문헌