MIT/GNU Scheme – Windows 사용법

By | 2008/07/15

현재 SICP를 공부하면서 DrScheme을 사용하고 있습니다.

하지만 공식적인 임플리멘테이션이 아니라 안되는 것이 있습니다.

 

그래도 대체할 것이 있어서 그것을 적용하며 문제를 풀고 있지만,

이번에 병행성을 얘기하면서 parallel-execute라는 프로시저가

표준 Scheme에는 없고 MIT scheme에 있다는 주석을 보았습니다.

DrScheme에서 확인해보니 그런 프로시저가 없다고 합니다.

그래서 이번 기회에 Scheme를 사용하기로 하였습니다.

 

제가 MIT/GNU Scheme를 쓰지 못한 가장 큰 이유는 이맥스(Emacs)를 모르기 때문입니다.

정확하게는 사용법을 제대로 익히지 못하였다는 것입니다.

Emacs보다는 Vi를 더 많이 씁니다.^^

(그렇다고 Vi를 잘 쓰는 것도 아닙니다.OTL…)

그런데 MIT/GNU Scheme의 Edwin은 Emacs 기반입니다.

그러니 실행은 시켰지만 도저히 어떻게 해야할지 몰랐습니다.

 

하지만 어쩔 수 없이 사용해야하므로 이번 기회에 Emacs를 조금 배우기로 하였습니다.

이 글은 Emacs를 전혀 모르는 분이 SICP 문제를 풀 때

MIT/GNU Scheme 사용에 도움이 되리라 생각합니다.

(정확하게는 제가 나중에 잊지 않도록 기억 보관용입니다.OTL…)

(그림은 클릭하면 원본 크기로 볼 수 있습니다.)

 

 

MIT/GNU Scheme는 여기서 다운받습니다.

 

http://www.gnu.org/software/mit-scheme

 

여기서 각자 맞는 OS를 찾아 설치하시면 됩니다.

전 블로그에 글을 쓰기 위해 Windows Live Writer를 사용하기에

Windows binary를 선택하여 설치하였습니다.

설치하는 법은 그리 어렵지 않습니다.

 

설치 후 시작에 ‘MIT-GNU Scheme’라는 폴더에 실행 단축아이콘이 있습니다.

여기서 MIT-GNU Scheme를 클릭하여 실행시킵니다.

 

그럼 위처럼 두 개의 창이 나옵니다.

여기서 ‘Edwin: *scheme*’라는 창에서 작업을 합니다.

 

 

더 나아가기 전에 약속을 하겠습니다.

<C-x>라는 글자는 Ctrl 키와 x키를 동시에 누르는 일입니다.

기본적으로 ‘잘라내기’를 하는 단축키를 말하는 것입니다.

<M-f>라는 글자는 Alt 키와 f키를 동시에 누르는 일입니다.

Windows Internet Explorer에서 누른다면 메뉴의 ‘파일(F)’가 선택됩니다.

물론 Ctrl 키를 먼저 누른 후 키를 놓지 않고 x 키를 눌러도 됩니다.

 

 

이제 파일을 선택하겠습니다.

물론 새 파일을 여는 경우도 동일합니다.

 

<C-x> <C-f>를 하면 밑에

‘Find file: c:\program files\mit-gnu scheme\’라는 글자가 뜹니다.

해당 명렁어는 파일을 찾는 명령어입니다.

(<C-x> <C-f>는 <C-x>를 한 후 <C-f>를 하면 됩니다.)

 

여기서 파일을 찾거나 원하는 디렉토리에 저장하고 싶은 파일을 적습니다.

저는 테스트를 위해 SICP 소스 파일을 모은 폴더에

test.scm이라는 파일을 만들었습니다.

 

위처럼 지정 경로와 파일 이름을 치고 엔터를 치면 편집할 수 있는 화면이 나옵니다.

 

새로운 파일이기에 아무것도 보이지 않습니다.

그리고 밑에 (New file)이라는 메시지도 보이네요.^^

 

이제 코드를 작성하겠습니다.

코드는 간단히 제곱을 구하는 square 프로시저를 만들어 실행시키는 코드입니다.

 

위처럼 코드를 칩니다.

 

파일을 저장하는 것이 좋을 듯싶습니다.

따라서 <C-x> <C-s>를 실행하여 파일을 저장하였습니다.

 

밑에 ‘Wrote g:\sicp\test.scm’이라는 메시지가 뜨는군요.^^

 

 

이제 실행을 시켜보겠습니다.

사실 이 부분에서 고생하였습니다.

코드를 실행시키면 REPL buffer라는 곳에 저장됩니다.

따라서 이 buffer를 화면상에 출력하는 것이 문제였습니다.^^;;;

 

먼저 <C-x> <C-b>로 buffer 목록을 확인합니다.

(굳이 하지 않아도 됩니다. 다만 밑의 주의점을 읽어주세요.)

 

buffer 목록으로 *scheme*라는 이름의 REPL 버퍼가 보입니다.

이제 이 버퍼를 보이게 하기 위해 <C-x> <4> <b>를 실행시킵니다.

(이 명령어는 <C-x> 후 숫자 4키, 그 다음에 b키를 누르면 됩니다.)

 

그럼 밑에 메시지가 나옵니다.

default로 *scheme*가 잡혀있기에

그냥 엔터키를 눌러도 되고 이름을 쳐도 상관없습니다.

 

여기서 주의점은 커서가 위의 코드창에 있어야 한다는 점입니다.

이 명령어는 커서가 없는 창에 버퍼의 내용을 출력하기에

만약 밑(buffer-list)에 커서가 있는 상태에서 실행하면

위(test.scm)에 buffer 내용이 나옵니다.

 

만약 buffer list를 실행하지 않은 상태에서 버퍼 목록을 띄우면 밑의 화면이 나옵니다.

여기서 주의점은 버퍼가 많을 경우 default가 다른 것으로 잡힐 수 있습니다.

따라서 이 때는 *scheme*라는 버퍼의 이름을 입력해야합니다.

그리 주의점은 아니네요.^^;;;

 

여하튼 이렇게 REPL 버퍼를 띄웠습니다.

 

이제 코드를 실행시킬 때가 왔습니다.

커서를 코드에 올려둡니다.

(방법은 마우스로 클릭하여도 되고, <C-x> <o>를 하여도 됩니다.)

 

즉, 위처럼 검은 색 커서가 위에 있어야 합니다.^^

 

<M-o> 명령어를 실행하면 코드를 읽고 동작을 합니다.

그리고 그 출력물이 밑의 화면에 나타납니다.

 

잘 나오는군요.^^

 

<M-o>는 코드 전체를 실행시키는 명령어입니다.

문서를 보시면 한 줄을 실행시키는 등의 다양한 명령어가 있지만

이는 후에 쓰다보면 필요할 듯싶어 생략하겠습니다.

일단 기본적인 것에 익숙해진 다음에 불편함을 느낄 때 찾아보세요.^^

 

 

이제 tip을 적겠습니다.

 

1. 파일을 찾을 때 MDIR처럼…

<C-x> (C-f>로 파일을 찾을 때 탐색기처럼 사용이 가능합니다.

위의 명령어를 실행하면 현재 디렉토리 주소가 나옵니다.

이 때 해당 디렉토리 전체를 삭제하고 빈 상태에서 엔터키를 누르면 다음처럼 나옵니다.

 

즉, MDIR처럼 화살표와 엔터만으로 쉽게 파일에 접근할 수 있습니다.

 

 

2. 들여쓰기

위의 코드를 보시면 들여쓰기가 되어있지 않습니다.

자동으로 들여쓰기를 할 수 있는 듯싶으나 그런 설정은 찾지 못했습니다.

다만, 전체를 들여쓰기 할 수 있는 명령어는 찾았습니다.

 

해당 명령어는 <C-M-\>입니다.

즉, Ctrl + Alt + \입니다.

여기서 커서는 제일 끝에 위치하여야 합니다.

즉, 커서 위에 있는 코드들의 들여쓰기를 실행합니다.

 

 

3. 실행 취소(Undo)

은근히 자주 쓰이는 명령어이지요.^^

<C-x> <u>를 실행하면 Undo가 실행됩니다.

즉, 윈도우의 대부분 편집기(한글이나 word 등)에서의 Ctrl + Z와 같은 역할을 합니다.

 

 

PS

이 글을 적었지만 다시 DrScheme로 넘어가게 되었습니다.

자세한 것은 다음 글에…ㅜㅜ

 

PS2

이 글만으로는 MIT/GNU Scheme를 사용함에 있어 많은 것이 부족합니다.

따라서 이 글을 적는데 참조로 한 문서를 읽으신다면 도움이 많이 되실겁니다.

 

다시 말하지만 이 글은 프로그램을 실행시킨 후

무얼 어떻게 해야할지 모르는 사람을 대상으로 하는 글입니다.

(제가 실제로 그러하였기에… OTL….)

그렇기에 처음에 방황을 벗어나신 후에는

메뉴얼의 글도 쉽게 적용시킬 수 있어 이해가 빠를 것입니다.

 

 

참조

http://members.kr.inter.net/joo/doc/emacs.html

015.pdf

(위의 문서는 PDF입니다. 혹시 모르기에 사본을 이글루스에 저장합니다.)

사본 : 016.pdf

http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-user

 

추천 문서

http://kaisyu.springnote.com/pages/334404

http://www.gnu.org/software/emacs/tour/

6 thoughts on “MIT/GNU Scheme – Windows 사용법

  1. deisys

    전 리눅스 박스에서만 작업해서 못느끼고 있었는데, 윈도 환경에 scheme 설치하고 좀 해보려고 하니 상당히 잔손이 많이 가더군요. 리눅스에서는 쉬운데, 윈도는 너무 어려워요. :'(

    Reply
    1. NoSyu

      반갑습니다.
      리눅스를 사용하신다면 이맥스가 쉬우실테니 편하시겠네요.^^
      전 아직 이멕스에는 덜 익숙한지라…OTL…..

      확실히 개발환경은 리눅스가 상당히 편한 듯싶습니다.
      하지만 문제를 풀고 이를 글로 적어야 하는데,
      이 때 Windows Live Writer를 사용하는터라 어쩔 수 없이 윈도우에서 작업중입니다.ㅜㅜ

      윈도우 유저에게는 SICP를 풀 때 DrScheme가 편한 듯싶습니다.
      Scheme는 이후 어디에 쓰일지 모르는터라 다른 임플리멘테이션은 잘 모르겠네요.OTL…..ㅜㅜ

      Reply
  2. minne

    역시 개발자에겐 리눅스인가 보군요…
    윈도우에만 너무 지배당해온 것 같아 원망스럽네요(어따대고 원망질이야~) ㅎ

    포괄적으로 리눅스환경(?)에 익숙해지기(?) 추천 책이라도 있으신가요?
    아무래도 mit-scheme으로 갈아타고 싶은 마음이 있긴 한데..
    원서보는 것도 발목을 잡는데 조금이라도 진도 뺄려면…

    Reply
    1. NoSyu

      리눅스가 개발하기에는 편합니다.
      개발 환경 구축도 편하고, 게임이 실행 안되니 개발에만 전념하죠.(응?)
      한 번 써보시면 나름 재미있다는 것을 느끼실 것입니다.
      전 처음에는 짜증이 많이 났습니다.OTL

      저 역시 리눅스 환경에 익숙해지기 위해 책을 찾았지만, 딱히 좋은 책이 없었습니다.
      다만, 이런 마인드가 좋은 듯싶습니다.
      ‘이런 것이 있었으면 하는데… 찾아보자.’
      그럼 대체로 답이 존재한다는 것을 알 수 있었습니다.
      왜냐하면 제가 고민한 것은 이미 다른 사람들이 고민한 것이니까요.^^

      Reply
  3. ms_kim

    MIT/GNU Scheme으로 만든 스킴 파일이 윈도우즈 파일 시스템 상에서는 보이지 않는데,
    윈도우즈 파일 시스템에서 스킴 파일을 보는 방법을 알 수 있을까요?

    Reply
    1. NoSyu Post author

      저도 오래전에 써서 잘 기억이 나지 않네요.
      하지만 딱히 그런 문제점은 없던 것 같았습니다.
      혹시 파일 저장 장소를 설정하셨나요?

      Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.