Description
맨땅에서 시작해 완전히 작동하는 컴파일러 구현까지
이 책은 《밑바닥부터 만드는 인터프리터 in Go》의 후속편입니다. 인터프리터와 컴파일러의 가장 큰 차이점은 중간코드, 즉 목적코드의 존재 유무에 있습니다. 전편에서 만들어둔 파싱 데이터를 바이트코드라는 목적코드로 변환하고, 이것을 스택 기반의 가상 머신으로 실행하고 확장하는 과정을 단계적으로 보여줍니다.
이 책은 전편처럼 테스트 주도 개발 방법을 이용해, 컴파일러의 작은 부품에서부터 시작하여 점차 고급 기능으로 확장해갑니다. 이런 전개의 장점은 컴파일러의 구조와 코드를 독자가 매우 쉽게 이해하게 된다는 점입니다. 레고 부품을 조립해 하나의 완성된 테마를 만들 때처럼, 구현물이 테스트를 통과할 때마다 컴파일러의 동작 원리를 깨치는 재미가 제법 쏠쏠합니다. 호스트 언어인 Go를 깊이 있게 다루는 경험도 이 책이 주는 또 하나의 선물입니다.
이 책은 《밑바닥부터 만드는 인터프리터 in Go》의 후속편입니다. 인터프리터와 컴파일러의 가장 큰 차이점은 중간코드, 즉 목적코드의 존재 유무에 있습니다. 전편에서 만들어둔 파싱 데이터를 바이트코드라는 목적코드로 변환하고, 이것을 스택 기반의 가상 머신으로 실행하고 확장하는 과정을 단계적으로 보여줍니다.
이 책은 전편처럼 테스트 주도 개발 방법을 이용해, 컴파일러의 작은 부품에서부터 시작하여 점차 고급 기능으로 확장해갑니다. 이런 전개의 장점은 컴파일러의 구조와 코드를 독자가 매우 쉽게 이해하게 된다는 점입니다. 레고 부품을 조립해 하나의 완성된 테마를 만들 때처럼, 구현물이 테스트를 통과할 때마다 컴파일러의 동작 원리를 깨치는 재미가 제법 쏠쏠합니다. 호스트 언어인 Go를 깊이 있게 다루는 경험도 이 책이 주는 또 하나의 선물입니다.
밑바닥부터 만드는 컴파일러 in Go
$28.00