더북(TheBook)

1.1.2 언어는 훌륭한 연습이다

장거리 육상 선수들은 발목에 모래 주머니를 달고 훈련하거나 공기가 희박한 고지대에서 훈련한다. 그래야 나중에 모래 주머니를 떼어냈을 때, 팔다리가 날아갈 것 같은 자유로움을 느끼며 산소가 가득한 공기를 마시고 더 빨리, 더 멀리 달릴 수 있다.

언어를 구현하는 일은 진정한 프로그래밍 스킬의 시험대다. 코드는 복잡하고 성능은 중요하다. 재귀(recursion), 동적 배열(dynamic array), 트리(tree), 그래프(graph), 해시 테이블(hash table)의 달인이 되어야 한다. 늘 프로그래밍을 하면서 해시 테이블을 사용해왔어도 정말 해시 테이블을 완전하게 이해하고 있는 사람은 드물다. 장담컨대, 처음부터 해시 테이블을 만들어보면 확실하게 이해하게 될 것이다.

나는 인터프리터 제작이 생각보다 그리 어렵지 않다는 걸 여러분에게 알리고 싶지만, 그렇다 해도 온전한 인터프리터를 통째로 구현하는 것은 쉬운 일이 아니다. 꿋꿋이 버텨내기 바란다! 여러분은 더 강력한 프로그래머, 일상 업무에서 자료 구조와 알고리즘을 더 똑똑하게 사용하는 유능한 프로그래머로 거듭날 것이다.

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