Jun 122009
 

MIT의 공통 핵심 과정으로 이 책을 공부한다. 생각하는 방식과 그 생각을 프로그래밍 언어로 표현하는 방법을 가르치는 마법사 책으로 명성이 자자하다. 많은 대학에서 전공 필수로 가르치는 책이기도 하다. 조엘 온 소프트웨어로 유명한 조엘은 대학교 때 이 책을 배우는 게 너무 힘들어 교수님께 어려워서 못 해먹겠다는 질질 짜는 메일을 보냈다고 한다. 하지만, 이후 무슨 바람이 불었는지, More Joel On Software에서 이 책을 극찬한다. 아마 뒤에 이 책의 진가를 알았으리라.

MIT가 이 책과 같이 붙어 다녀서일까? 이 책을 접하기 전에도 뭔가 대단한 책이고 어려운 책처럼 느껴졌다. 물론 보고 난 뒤에 내가 제대로 느꼈다고 느꼈다. 말로만 들어보고 접해보지 않았지만, 책의 명성때문에 공부하는 중에 책이 어떠냐고 물어보는 사람이 많았다. 그때마다 항상 이렇게 대답하곤 했다. “3장까지 리스프의 방언(dialect)인 스킴(Scheme)을 배우고 4장에서는 스킴의 인터프리터를 만들더니 5장에서는 레지스터 기계 시뮬레이터를 만들고 4장에서 만든 인터프리터를 시뮬레이터에 올리면서 끝나.” 크… 내가 이제까지 본 책 중에서 가장 쇼킹한 책이었다.

프로그래머는 제일 처음 배운 언어에 영향을 많이 받는다고 한다. 생각을 표현하기 위해 언어를 사용한다고 믿으나 실은 언어로 생각하기 때문에 그런 것 같다. C 언어가 가장 먼저 접한 프로그래밍 언어였는데, 이 언어에서 얻은 지식과 사고의 폭이 이 책을 이해하는데 걸림돌이 된 적이 몇 번 있었다. 만약 처음 배운 언어가 Lisp나 Scheme 이었다면 내 사고의 폭이 좀 더 넓어지지 않았을까 생각해본다.

스터디에서 이 책을 같이 공부했는데, 혼자 공부했으면 아마 다 보지 못했을 것이다. 다음에 기회가 생긴다면 한 번 더 보고 싶은 책~


by-nc-sa
Apr 292009
 

최근에 SICP 스터디가 끝났는데 , SICP에서 배우는 리스프(Lisp)의 방언(dialect)인 스킴(Scheme)의 역사와 중요 개념의 소개를 다룬 글이라서 너무 재미있게 읽었다. 관심 없는 역사는 연도와 사건들의 map으로 밖에 안 느껴져서 너무 지겨운데, 관심이 있거나 지금 공부하는 중인 언어에 대한 역사라서 무척 흥미롭다. SICP를 학과 과정에 배웠거나 공부하는 중이거나 번역판이 나와서 사긴 샀는데, 책장에서 썩고 있는 사람들에게 추천하고 싶은 글이다.

이 글 내용 중에서 리스프의 역사가 가장 흥미로웠다. 종종 딴 언어를 무시하는 경향을 보이는 사람이 있어서 꼴 보기 싫었던 리스프빠들이 느끼는 우월감을 조금 이해하게 됐다. 조금~

Continue reading »

by-nc-sa
Mar 292009
 

논리 중심으로 프로그래밍하는 개념이 어떤건지 배우는 챕터인데,평소 아무 생각 없이 써오던 DB 쿼리 언어에 관해 다시 한번 되짚어 볼 수 있었다. 쿼리 언어 실행기를 하는 일에 비해 적은 양의 소스 코드로 뚝딱 만들어 내는 것 보면 정말 놀랍다.

by-nc-sa
Mar 162009
 

프로시저를 병행으로 돌릴 때, 줄 세우개(serializer)를 사용해 줄 세우개를 사용한 프로시저 그룹에서는 여러 프로시저가 실행되지 않게 한다. 줄 세우개를 사용한 동기화, 데드락의 이슈를 스킴(Scheme)으로 설명한 챕터.

PS : 역자 주석에도 밝혔듯이 serialize를 직렬화라고 번역하면 Input/output 에서의 직렬화와 헷갈릴 수 있기 때문에 줄 세우기라는 단어를 썼다고 하는데, 이해가 되는 좋은 단어라고 생각된다.

by-nc-sa