Books by Example/SICP2007.11.05 23:04
"컴퓨터 프로그램의 구조와 해석(이하 SICP)"에 대한 서평 아닌 서평을 일전에 올린 적이 있었습니다. 그 글을 올리고 한동안 책을 들춰보지 않았었는데요. 오늘 갑자기 그 책에 다시 손을 대게 되었습니다. 이러다가 평생 제대로 된 책 한권 다 읽지 못할지도 모른다, 는 공포심 같은 것이 들었다고나 할까요. 제 자신의 게으름에 물릴 대로 물렸다, 뭐 그런 겁니다.

SICP는 Scheme이라는 Lisp 언어를 대상으로 하고 있습니다. 고백하건대 저는 학부때 프로그래밍 언어 특론을 중도에 수강 포기했었습니다. Lisp 언어의 근간을 이루는 Lambda Calculus를 전혀 이해하지 못했기 때문이죠. Wikipedia의 Lambda Calculus 관련 페이지에서 한 단락을 인용해 보겠습니다.

The Lambda Calculus can be thought of as an idealized, minimalistic programming language. It is a close cousin of the Turing Machine, another minimalist abstraction capable of expressing any algorithm. The difference between the two is that the Lambda Calculus takes a functional view of algorithms, while the original Turing machine takes an imperative view. That is, a Turing machine maintains 'state' - an arbitrary long 'notebook' of symbols that can change from one instruction to the next. The imperative paradigm can be seen in programming languages like C or Basic. By contrast, the Lambda Calculus is stateless, it deals exclusively with functions which accept and return data (including other functions), but produce no side effects in 'state' and do not make alterations to incoming data (immutability.) The functional paradigm can be seen in modern languages like Lisp, Scheme and Haskell


그런데 이제와서 골치아프기까지 한데다 "먹고 사는 문제하고도 하등의 상관이 없는" 언어로 씌여진 책을 다시 공부해보겠다고 설치는 이유는 뭘까요? 첫 번째는 'Lisp나 lambda calculus라는 것이 생각보다는 어렵지 않더라', 는 깨달음인 것 같고, 두 번째는 ... 설명하기 좀 곤란하니까 넘어가도록 하죠 ^^;

아무튼, 이 책을 읽으려면 Scheme 컴파일러, 디버거 등등의 시스템이 필요합니다. 잘 알려진 Scheme 시스템으로 MIT/GNU Scheme이 있고 PLT-Scheme이 있는데, 둘 다 Windows에서는 잘 깔립니다. Linux에서는 Ubuntu라면 모르겠지만 Fedora라면 깔기가 좀 난감합니다. 설치 메뉴얼 대로 해봐도 다 잘 안되죠.  (제 리눅스는 Fedora Core 6 입니다) 거기다 MIT/GNU Scheme의 Windows 인터페이스(Erwin이라고 부릅니다만)는 하필이면 제가 익숙치 않은 Emacs 기반의 인터페이스입니다. -_-;

그러니, Windows에서건 Linux에서건 PLT-Scheme쪽이 더 낫습니다. 설치도 간단하고 (Windows에서는 인스톨러만 실행하면 되고, FC 6에서는 yum install plt-scheme이라고만 하면 됩니다) 인터페이스도 훨씬 더 직관적입니다.

PLT-Scheme 실행 화면

PLT-Scheme 실행 화면


위의 그림은 제 집 컴퓨터(Windows XP)에서 PLT-Scheme을 돌려 본 화면입니다. 리눅스가 깔린 회사 노트북(LM 70)에서도 설치해서 돌려봤는데, 저거랑 똑같은 형태로 실행됩니다. -_-

PLT-Scheme의 GUI는 DrScheme이라고 불립니다. MzScheme이라고 GUI가 없는 형태의 cheme 구현도 포함되어 있는데, MzScheme은 Unix에서 좀 더 사용하기가 편합니다.

http://www.plt-scheme.org/에서 다운받아 사용할 수 있습니다.

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 저두 그 책을 공부할려고 , scheme 을 깔려고 했던게 기억나네요. 트랙은 저는 원래 emacs 유저라 emacs 에다 붙이는 걸 남깁니다. (__

    2007.11.20 15:56 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 반갑습니다. 뉴스2.0을 타고 왔습니다.
    오늘부터 해당 책으로 동아리에서 스터디에 들어갑니다.
    (책은 잘 모르고 하자니 따라하는 수준...OTL.....)
    해당 임플리멘테이션이 페도라에는 잘 설치가 되지 않는군요.OTL...
    (전 Fedora 7에서 오늘 8으로 올릴 생각입니다.)
    좋은 정보 고맙습니다.^^

    2007.11.23 12:22 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 아. 반갑습니다. 스터디 하신다니 좋으시겠군요.
      PLT-Scheme이면 페도라에도 잘 깔릴텐데 이상하군요.
      아무튼 잘 되길 바랍니다. :-)

      2007.11.23 12:55 신고 [ ADDR : EDIT/ DEL ]
  3. 멋지십니다. >_<//
    저도 이번주부터 학교 친구들 모아서 스터디에 들어갑니다.
    이런 뜻있는 분들이 모두 모인다면 정말 공부하는데 도움이 될듯 합니다.
    응원해주세요! -_- 중간에 포기하지않기를요 ^^

    앞으로 낭만고양이님 신세좀 많이 지겠습니다. ^^

    2007.12.17 14:31 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 스터디하신다니 부럽군요. 전 혼자 하려니 힘듭니다 ㅎㅎ 꼭 끝까지 완독하시길 바랍니다! 화이팅~

      2007.12.17 16:40 신고 [ ADDR : EDIT/ DEL ]
  4. 퍼갑니다^^ 참 좋은 정보 들이 많군요~~^^ㄳㄳ

    2008.07.23 01:30 신고 [ ADDR : EDIT/ DEL : REPLY ]