최근 SICP( Structure and Interpretation on Computer Programs) : JavaScript Edition 책을 가지고 스터디를 진행하고 있다. 물론 최신 트렌드와는 맞지 않는다는 이유로 MIT에서는 교과과정에서 배제되었지만 이 책이 프로그래밍을 하는데 도움이 되지 않는다고는 말할 수 없을 것이다. 최근 트렌드는 다른 사람들이 써놓은 라이브러리를 적재적소에 잘 사용해서 빠르게 만들어 출시하는 것이지만, SICP의 커리큘럼을 따라가면 다른 사람들이 라이브러리를 만든 것처럼 나 스스로가 튼튼한 라이브러리 또는 앱을 만들 수 있다고 생각한다.
어떤 사람이 SICP에 대한 후기를 남긴 것을 보았는데, "폴리글랏, 그리고 메타 프로그래밍을 할 수 있도록 훈련시키는 책" 이라고 언급하였다. 이는 결국 SICP 자체가 본질에 접근하기에 이러한 말이 나온다고 생각한다.
앞으로 이 카테고리에서는 SICP 책의 내용을 요약하여 올릴 예정이다. 나와 같이 SICP를 공부하는 사람들을 또 마주하는 일이 생겼으면 좋겠다.
계산적 과정
책에서는 계산적 과정에 대해 “컴퓨터 안에 사는 추상적인 존재이며, 이 과정은 점차 전개되면서 Data라고 부르는 또 다른 존재를 조작하게 된다. 하나의 과정은 일정한 규칙들의 패턴에 따라 전개되는데 그러한 패턴이 Program이다.” 라고 설명하고 있다, 나는 이를 프로그래밍이라고 정의하기로 했다.
계산적 과정은 어떤 구체적인 산술 계산을 수행하는 과정보다는 “그 과정의 세부절차 단계들을 명확히 규정할 수 있으며 형식화할 수 있는” 과정을 말한다.
자바스크립트
이 책의 원판에서는 스킴이라는 언어로 내용을 풀어나가는데, 내가 보는 책에서는 자바스크립트를 사용한다. 렉시컬 스코프 일급 함수나 동적 형식 적용 같은 자바스크립트의 가장 근본적인 설계 원칙들은 스킴(Lisp의 방언)에서 물려받은 것이다. 따라서 이 책에서는 스킴으로 쓰여진 원판 SICP와 내용을 최대한 가깝게 풀어나갈 수 있다고 적혀있다.
'📝 꾸준함이 무기 > SICP' 카테고리의 다른 글
SICP:JS Edition 1.1 프로그래밍의 기본 요소 (0) | 2023.02.08 |
---|