더북(TheBook)

연습 문제

1. 여러분이 즐겨 쓰는 언어의 오픈 소스 구현체를 선택하여 소스 코드를 내려받고 여기저기 뜯어보라. 스캐너와 파서를 구현한 코드를 찾아보라. 그 코드는 손으로 작성되었는가? 아니면 렉스나 야크 같은 도구로 생성됐는가? (보통 파일 확장자가 .l 또는 .y면 후자에 해당한다.)

2. JIT 컴파일은 동적 타입 언어를 구현하는 가장 빠른 방법이지만 모든 언어가 JIT 컴파일을 활용하는 것은 아니다. JIT 컴파일을 사용하지 않는 이유는 무엇일까?

3. C로 컴파일되는 대부분의 리스프(Lisp) 구현체에는 리스프 코드를 바로 실행할 수 있는 인터프리터도 탑재되어 있다. 왜 그럴까?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.