SICP 를 하기위해 Scheme 컴파일러

요즘에 생각하는게..

프로그래밍이라는게 참으로 기초가 중요하다고 생각해여..

운영체제나, 프로그램 개념이라던가, 소포트웨어 공학이라던가

그래서 "기본이 제일 기본이다" 라는 생각으로 skill 보다는 base를 제대로 닦을수 있는 그런 책을

그런것을 제대로 공부해야... "지금 회사에서 하는 c&p 코더짓" 을 좀 벗어나서 제대로된, 창조적인 "프로그래머"

가 될수 있다는 생각에................ (근데 이런건 아마 학부때 배우는거 아니였나여 ㅋㅋ)

뭐 어쨋던 그런종류의 책을 찾다보니깐  TAOCP, SICP 등이 있더군여

그래서 저번에  TAOCP를 샀는데... 이건뭐 완전 수학책이라 ㅜㅜ...
The art of computer programming 1: 기초 알고리즘 상세보기
도널드 커누스 지음 | 한빛미디어 펴냄
컴퓨터 프로그래밍 입문서. 이 책에서는 기본적인 프로그래밍 개념과 기법으로 시작해서 정보 구조, 다시 말해서 컴퓨터 안에서의 정보 표현, 자료 요소들 사이의 구조적 관계, 그리고 그것들의 효율적인 처리에...

기초 수학도 아니고 이건뭐..

 공학수학은 확실하게 알아야 "이게 이렇게 풀라는 거군하.." 라고 알겠는 수준이더군여

(그것도... 과연 그럴까?? )

뭐 저도 "공학수학" 수업은 들었는데... 공부를 안해서 (대충 한것도 아니고) 하나도 모른답니다 ^^;

그래서 TAOCP는 "책장 장식용" 으로 뽀대나게 두고...

이번에 토익책 사면서  SICP도 샀다는,..

"그래 24" 에서 샀는데 먼저 주문한 SICP는 하루 늦게 오더군여 -_-;

이게 그 "문제의" SICP

컴퓨터 프로그램의 구조와 해석. 1 상세보기
해럴드 애빌슨 지음 | 인사이트 펴냄
『컴퓨터 프로그램의 구조와 해석』 제 1권. 이 책은 해럴드 애빌슨 등이 저술한 것으로, MIT의 컴퓨터과학 입문교과서다. 소프트웨어 제작의 원리와 구성을 바탕으로 프로그래밍의 이슈를 살펴보고,...

이번에 2판 내면서 책이 "상", "하" 로 나눠졌나봅니다..

뭐 저야 출퇴근에 가면서 보기 쉽게 만들어놓으니깐 저야 좋더군여.. 가격차이는 그렇게 차이 안나는거 같군여

상하, 합쳐도... 뭐 지금도 1판 파는데도 많으니깐 2권이 귀찮다 싶으신분은 그냥 1판 사셔도 되고 뭐...

어쨌던...

이책은 좀 특이하게도... 책 서술을 "LISP" (中 scheme) 로 하기 때문에 좀 그렇습니다.. 익숙지 않죠..

알고리즘할때 많이 사용한다고 듣긴 했는데 이걸 직접 할 줄이야.. 하고 경악(?) 했져..

저야 집에서는 윈도보다는 리눅이를 더 많이 쓰는지라 (이 포스팅도 리눅스 - 파폭에서 하고 있죠)

눅스에서 쓸수있는 sheme 컴파일러를 찾으려고 yaourt를 보니깐 뭐 바로 나오더군여..

그래서 설치 했다는.. OS/ 배포판 마다 다르겠지만... 아마 패키지는 다 있을거에요.. 전 아치라서..

#yaourt -S bigloo

로 설치

사용법은........... 그냥 bc 쓰듯이 쓰면 댑니다...

(그러고 보니 이건... 컴파일러가 아니잖아! 인터프리터네..)

 매우 기초적인 문법은 그냥...

소괄호 : 프로시져
부호( +,-,  *. /, ...)
인자1, 인자2, 인자n

순서로 사칙연산은 시키면 되더군여

( 부호 인자1 인자2 )

아래는 그 예.

[~/work]$ bigloo
------------------------------------------------------------------------------
Bigloo (3.3a)                                                            ,--^,
`a practical Scheme compiler'                                      _ ___/ /|/ 
Wed Jan 6 08:19:45 CET 2010                                    ,;'( )__, ) '  
Inria -- Sophia Antipolis                                     ;;  //   L__.   
email: bigloo@sophia.inria.fr                                 '   \    /  '   
url: http://www.inria.fr/mimosa/fp/Bigloo                          ^   ^      
------------------------------------------------------------------------------


1:=> 1+1
*** ERROR:eval:
Unbound variable (from top-level) -- 1+1

1:=> 5 + 5
5
1:=> #<procedure:836f270.-1>
1:=> 5
1:=> 1
1
1:=> (+ 137 349)
486
1:=> (- 1000 334)
666
1:=> (* 7 8)
56
1:=> (+ 1 2 3 4 5)
15
1:=> (+ (* 3 5) (- 10 6))
19
1:=> (define size 2)
size
1:=> size
2
1:=> (* 5 size)
10
1:=> (define pi 3.14159)
pi
1:=> (+ size pi)
5.14159
1:=>