Hacker News 의견들
  • 이 책을 읽으며 expression problem과 그 해결책으로서의 visitor 패턴을 더 잘 이해하게 되었음
    덕분에 visitor가 필요 없는 클래스 계층 상속(Class Hierarchy Inheritance) 개념도 완전히 깨달았음
    Newspeak 언어에서는 클래스 안에 중첩 클래스를 둘 수 있어서, 상속 시 그 중첩 클래스들도 함께 상속됨
    이 기능이 Free Object Algebras를 가능하게 한다는 점을 이 블로그 글에서 다루고 있음
    참고: Expression Problem 글, Newspeak 공식 사이트
  • 이 훌륭한 책에 대한 두 번의 인기 토론이 있었음
    2020년에는 777포인트, 2024년에는 607포인트를 기록했음
  • 이 책은 새로운 언어를 배울 때 정말 좋은 자료였음
    다양한 언어 기능과 패턴을 직접 구현해보며 학습하게 되기 때문임
    Java에 없는 기능이 있는 언어에서는 비슷한 패턴을 적용하기가 어렵지만, 그 도전 자체가 재미였음
  • 겨울 휴가 동안 이 책을 완독했음
    작가의 캐주얼한 문체와 곳곳의 유머가 정말 마음에 들었음
    “Lox에 타입 체커 추가하기” 같은 후속편이 나오길 바람
  • 정말 좋은 책임
    처음엔 종이책을 샀는데 너무 크고 무거워서 결국 전자책으로 다시 구입했음
    메모와 검색이 훨씬 편리함
    그래도 읽다 보면 산속에서 길을 잃은 기분이 들기도 함 :)
    저자의 또 다른 저서인 Game Programming Patterns도 추천함
    • 나는 책의 제본을 링 바인딩으로 바꿔서 쓰기도 함
      인쇄소에서 쉽게 해줄 수 있고, 책상 위에서 다루기 훨씬 편함
      다만 Crafting Interpreters는 절대 버릴 수 없는 책이라 그대로 두고 있음
  • 이 책을 세 번이나 선물용으로 인쇄본을 구입했음
    그만큼 훌륭한 책임
    • 복사본을 사줘서 고맙다는 인사 :)
  • 컴파일러 설계를 배우기에 최고의 자료 중 하나임
    게다가 웹 버전이 무료라는 점이 정말 관대함
    • 다만 책 제목에는 ‘compiler’라는 단어가 직접적으로 들어가 있지는 않음
  • 이 책을 정말 좋아함
    다만 Java 버전이 오래된 점이 아쉬움
    최근 추가된 sealed classesexhaustive switch 같은 기능을 반영한 개정판이 있었으면 함
    • 최신 Java로 직접 업그레이드해보는 것도 좋은 연습 과제
      그렇게 하면 저자가 만든 임시 코드 생성 도구가 필요 없어짐
  • C++의 typedef처럼 문맥 의존적 구문을 파싱하는 방법이 궁금했음
    PEG 기반 파서에서 context stack을 추가하는 해킹성 접근도 있지만, 구문 전환 문제는 여전히 어려움
    persistent data structuretransactional data structure가 도움이 될 것 같지만, 아직 명확한 형식화를 찾지 못했음
    • Lexer hack을 참고하면 됨
      파서가 lexer에 상태를 전달하도록 만들어, 타입 이름 집합을 lexer가 알 수 있게 하는 방식임
    • 또 다른 방법으로는 functional parser를 사용하는 것임
      예를 들어 Parsec 같은 라이브러리에서 ‘do’ 표기법을 활용하면 각 단계의 결과를 다음 파서들이 공유할 수 있음
    • C/C++의 문법 설계가 최악 수준이라 이런 문제가 생김
      다행히 Rust나 Go는 이런 문제를 피했으며, 신중한 설계로 충분히 방지 가능함
  • 인터프리터를 시작하려는 사람들을 위해 몇 가지 자료를 공유함
    shi 프로젝트와, C 언어 쪽에 관심 있다면 hacktical-c를 참고하면 좋음