로버트 나이스트롬의 인터프리터 in Java, C

· (주)도서출판길벗
5.0
3 reviews
Ebook
816
Pages

About this ebook

프로그래밍 언어 디자인에 관한 최고의 책! Dragon Book보다 재미있다!

OOP와 함수형 프로그래밍을 모두 지원하는, 현대 프로그래밍 언어의 실용적 구현!

 

 

매일 사용하고 있는 프로그래밍 언어가 어떻게 설계되고 구현되는지 알고 싶은가? 프로그래밍 언어가 어떻게 작동하고, 바이트 코드로 컴파일되고, 가상 머신에서 실행되는지에 관심이 있는가? 프로그래밍 언어가 어떻게 구축되었는지 더 깊이 이해해서 더 강력하고 유능한 소프트웨어 개발자가 되고 싶은가? 그렇다면 이 책은 당신을 위한 것이다. 이 책은 모든 기능을 갖춘 효율적인 스크립팅 언어를 구현하기 위해 알아야 할 모든 것을 담고 있다.

로버트 나이스트롬은 이 책에서 자신이 디자인한 작은 동적 언어인 Lox에 대해 두 가지 인터프리터를 구축한다. 첫 번째, 제이록스(jlox)는 Java 기반 인터프리터로 스캐닝, 재귀 하강을 사용한 표현식 구문 분석, 표현식, 제어 흐름, 함수 및 클로저, 클래스 및 상속을 평가한다. 아무것도 없는 밑바닥부터 시작하여 각 장의 주제를 구현해내는 모든 코드를 작성, 수정, 추가하며 설명한다.

두 번째, 씨록스(clox)는 C 기반으로 추상 구문 트리를 따라가는 느린 인터프리터 대신 스택 기반 가상 머신을 개발하며 관련 이론과 실제로 고려해야 할 사항을 다룬다. 두 가지 인터프리터를 구현하면서 비슷한 주제에 다르게 접근한다. 예를 들어 제이록스에서는 Java의 HashMap을 사용하여 식별자를 관리하고 Java의 가비지 수집에 의존했다면, 씨록스에서는 해시 테이블과 가비지 수집기를 직접 구현한다. 새로운 프로그래밍 언어를 구축하는 쉽지 않은 길을 위해, 책 전반에 걸쳐 복잡한 주제를 쉽게 이해할 수 있도록 세심하게 설명하고, 코드 역시 명확하고 따라하기 쉽게 넣고자 했다.

Ratings and reviews

5.0
3 reviews

About the author

20년 간 전문 프로그래머로 활동해왔으며, 그 중 절반 정도는 게임 분야에서 일했다. 일렉트로닉 아츠(Electronic Arts)에서 대작 '매든(Madden)'부터 '헨리 하츠워스(Henry Hatsworth)의 괴상한 모험' 같은 소규모 타이틀까지 다양한 게임을 개발했고, 이 시절 『게임 프로그래밍 패턴』(한빛미디어, 2016)을 집필했다. 개인 블로그를 방문하면 재치와 기지가 넘치는 흥미로운 그의 글을 접할 수 있다. 

- 지은이 블로그: https://journal.stuffwithstuff.com 

- 인터프리터 블로그: https://craftinginterpreters.com

자바 개발자, 소프트웨어 아키텍트로서 20년 가까이 대규모 엔터프라이즈 프로젝트에 참여해왔다. 처음에는 HTML, CGI, 자바스크립트 등 웹 기술에 푹 빠져 프로그래밍 세계에 발을 들여놓게 되었지만, 지금은 프로젝트 현장에서 백엔드 개발 프레임워크, 소프트웨어 아키텍처 설계, 그리고 개발자 기술 가이드 및 트러블슈팅 업무를 주로 수행한다. 『소프트웨어 아키텍처 101』(한빛미디어, 2021), 『마이크로서비스 패턴』(길벗, 2020), 『스프링 5 레시피』(한빛미디어, 2018) 등 20여 권의 도서를 번역하며 그간 현장에서 갈고 닦은 노하우와 지식을 동료, 선후배 기술자들과 공유하는 일에도 힘쓰고 있다.

Rate this ebook

Tell us what you think.

Reading information

Smartphones and tablets
Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.
Laptops and computers
You can listen to audiobooks purchased on Google Play using your computer's web browser.
eReaders and other devices
To read on e-ink devices like Kobo eReaders, you'll need to download a file and transfer it to your device. Follow the detailed Help Center instructions to transfer the files to supported eReaders.