2023. 12. 13. 23:50ㆍ도서 리뷰
CRAFTING INTERPRETERS 책 소개
▲'크래프팅 인터프리터(CRAFTING INTERPRETERS)'는 아마존 컴파일러 관련 도서 중 베스트셀러 2위에 올라있는 책입니다. 1위가 킨들 언리미티드에 포함된 도서니까 '크래프팅 인터프리터'는 사실상 컴파일러 1위 책이라고 할 수 있겠네요.
책의 저자는 유명 개발자인 '로버트 나이스트롬'입니다. 번역은 자바 전문가인 이일웅 님이 하셨습니다.
'Crafting Interpreters'에서는 Java와 C언어를 이용해 두 개의 인터프리터를 개발합니다. 이름은 각각 jlox, clox로, jlox는 자바를 이용해 조립하듯이 구현한다면 clox는 부품 하나하나를 직접 다 만드는 느낌으로 바닥부터 구현을 합니다.
서비스 구현하기도 바쁜데 컴파일러나 인터프리터를 만들어 볼 시간이 있나? 아니, 시간은 있는데 이런 걸 만들어서 나한테 도움이 되나? 이렇게 생각할 수도 있습니다.
저자는 이렇게 비유합니다. "자동차를 운전만 하던 사람이 후드를 열고 엔진을 수리할 수 있게 되는 셈이다."
어디까지 관심을 가지고 깊이 들어가느냐의 문제겠죠?! 엔진을 수리할 수 있게 되면 작은 엔진 정도는 직접 만들 수도 있을테고, 그렇다보면 이 분야에서 최고의 위치까지 가게 되지 않을까 싶어요.
컴파일러나 인터프리터를 만드는 것은 상당히 어려운 작업입니다. 컴공 학부에서도 4학년 때 배우는 과목이고, 많은 학생이 기피하는 수업이기도 합니다. 하지만 공부해 놓으면 개발할 때 큰 도움이 되는 건 사실이고, 특히 새로운 언어를 습득할 때 빠르게 이해할 수 있게 해줍니다.
'Crafting Interpreters'를 보고 이 책을 컴파일러 전공 서적으로 선정했으면 무지하게 쉬웠겠다는 생각을 했습니다. 구성과 번역이 좋고 표와 이미지를 중간 중간에 잘 썼습니다. 덕분에 어려운 걸 볼 때 필연적으로 뿜어져 나오는 뇌의 스트레스(!)를 적절하게 잘 잡아줍니다.(^^;;~)
(학교에서 컴파일러 수업 들으실 분은 이걸로 선행 학습 하세요~~ A+ 보장입니다ㅎㅎ)
가나다
"Crafting Interpreters"는 프로그래밍 언어 디자인에 관한 최고의 책 중 하나로 꼽히며, OOP와 함수형 프로그래밍을 모두 지원하는 현대 프로그래밍 언어의 실용적 구현을 다룹니다. 이 책은 Lox라는 작은 동적 언어를 구현하기 위해 알아야 할 모든 것을 담고 있습니다. 이 책은 프로그래밍 언어를 처음 접하는 사람도 이해할 수 있도록 구성되어 있습니다. 이 책을 읽기 전에 Java와 C 언어에 대한 기본적인 지식이 필요합니다.
"Lox"는 "Crafting Interpreters"라는 책에서 소개된 작은 동적 언어입니다. 이 언어는 Java와 C 언어를 기반으로 하며, 이 책에서는 Lox 인터프리터를 구현하는 방법을 설명합니다. Lox는 다음과 같은 특징을 가지고 있습니다:
Lox는 동적 타입 언어입니다.
Lox는 C 계열 언어의 문법을 따릅니다.
Lox는 객체 지향 프로그래밍과 함수형 프로그래밍을 모두 지원합니다.
Lox는 가비지 컬렉션을 사용합니다.
이 책은 프로그래밍 언어를 처음 접하는 사람도 이해할 수 있도록 구성되어 있습니다.
"Crafting Interpreters"에서 Lox를 사용하는 이유는 Lox가 작은 동적 언어이기 때문입니다. 이 책은 Lox를 구현하기 위한 모든 것을 다루고 있으며, Java와 C 언어를 기반으로 한 두 개의 인터프리터를 구현합니다. 이 책은 프로그래밍 언어를 처음 접하는 사람도 이해할 수 있도록 구성되어 있습니다. Lox는 동적 타입 언어이며, C 계열 언어의 문법을 따릅니다. 또한 객체 지향 프로그래밍과 함수형 프로그래밍을 모두 지원하며, 가비지 컬렉션을 사용합니다. 이 책은 프로그래밍 언어 디자인에 관한 최고의 책 중 하나로 꼽히며, OOP와 함수형 프로그래밍을 모두 지원하는 현대 프로그래밍 언어의 실용적 구현을 다룹니다.
"Crafting Interpreters"에서는 Java와 C 언어를 기반으로 한 두 개의 인터프리터를 구현합니다. 이 책은 Lox라는 작은 동적 언어를 구현하기 위해 알아야 할 모든 것을 다루고 있습니다. 이 책의 예제는 Java와 C 언어를 사용하여 구현되었지만, 이 책의 내용은 다른 언어로도 구현할 수 있습니다. 이 책의 GitHub 저장소에는 TypeScript, Rust, Python, Go, Ruby, Swift 등 다양한 언어로 구현된 Lox 인터프리터가 있습니다. 이 책은 프로그래밍 언어를 처음 접하는 사람도 이해할 수 있도록 구성되어 있습니다.
"Crafting Interpreters"에서 구현된 인터프리터의 성능은 책의 저자인 로버트 나이스트롬이 "Crafting Interpreters"의 웹사이트에서 다음과 같이 말하고 있습니다.
“Clox는 느린 인터프리터입니다. 그러나 이 책에서는 성능 최적화에 대한 몇 가지 아이디어를 제공합니다. 이 책에서 설명하는 최적화 기법을 사용하면 Clox를 충분히 빠르게 만들 수 있습니다. 그러나 Clox는 여전히 C 계열 언어의 인터프리터보다 느립니다.”
따라서, Clox는 C 계열 언어의 인터프리터보다 느리지만, 이 책에서 설명하는 최적화 기법을 사용하면 충분히 빠르게 만들 수 있다는 것입니다. 이 책은 프로그래밍 언어를 처음 접하는 사람도 이해할 수 있도록 구성되어 있습니다.
'도서 리뷰' 카테고리의 다른 글
C언어독학책 추천 : 나도코딩의 C언어 입문 (길벗 출판사) (1) | 2023.12.27 |
---|---|
리액트란? 프론트엔드 개발자 필수 스킬이 필요하다면 <소플의 처음 만난 리액트> (2) | 2023.12.25 |
책 '데이터 드리븐 리포트' 리뷰 - AI 시대 직장인 필수 스킬, 데이터에 기반한 의사결정 하기 (0) | 2023.11.26 |
'데이터베이스 입문서'를 찾는다면? 오라일리-한빛미디어 '러닝 MySQL' (0) | 2023.10.29 |
인공지능 시대 개발자 필독서 추천 : 개발자의 하루를 바꾸는 코파일럿 & 챗GPT (0) | 2023.09.24 |