이광근 (2016) SICP: 컴퓨터 프로그램의 구조와 해석 : 마법사

이광근 (2016) SICP: 컴퓨터 프로그램의 구조와 해석 : 마법사

2023-09-09 Bibliography bib wizardbook

SICP : Structure and Interpretation of Computer Programs

(해럴드 애빌슨, 제럴드 제이 서스먼, and 줄리 서스먼 2016)

  • “SICP 컴퓨터 프로그램의 구조와 해석” 해럴드 애빌슨 and 제럴드 제이 서스먼 and 줄리 서스먼 2016 이광근
  • 마법사 책(Wizard Book)이라는 별명으로도 유명한 이 책은 독특하기로 소문난, MIT 컴퓨터 과학 입문 교과 과정에서 쓰는 교과서로, 프로그래밍 언어 문법이 아닌 프로그램의 뼈대를 구성하는 기술을 익히게 해준다. 흔한 프로그래밍 입문서와 달리, 난해하다는 평을 듣는 LISP에서 갈라져 나온 Scheme을 활용하며, 요약(abstraction)과 조립식 설계(modularity)에 따라 복잡한 프로그램을 간단하게 짜는 전략을 보여준다. 그뿐 아니라, 상태(state)가 있는 물체, 덮어쓰기(assignment), 병행 프로그래밍, 함수 프로그래밍, 제때 계산법(lazy evaluation), 비결정적 프로그래밍(non-deterministic programming) 등 다양한 프로그래밍 이슈를 살펴보며 한 걸음씩 프로그램을 설계하고 짜 맞추고 살펴보고 고쳐 쓰면서, ’과연 프로그래밍이란 무엇인가’ 돌이켜 보게 하고, 생각하는 방식과 그 생각을 표현하는 방식을 가르쳐 준다.

(해럴드 에이블슨 et al. 2022) “자바스크립트로 배우는 SICP : 컴퓨터 프로그램의 구조와 해석”

  • “자바스크립트로 배우는 SICP : 컴퓨터 프로그램의 구조와 해석” 해럴드 에이블슨 and 제럴드 제이 서스먼 and 마틴 헨즈 and 토비아스 브릭스타드 and 줄리 서스먼 2022 류광
      • 모든 프로그래머는 마법사다난해한 프로그래밍 언어로 만들어진 컴퓨터 프로그램. 프로그램은 일정한 패턴을 따라 주어진 과제를 해결해 나간다. 즉, 프로그래머는 프로그램이라는 주문을 외워 컴퓨터에 깃든 영혼을 부리는 마법사인 셈이다. 여기 모든 마법사를 위한 마법사…

NEXT Video Lectures (1986)

[2023-10-03 Tue 12:03] https://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

총 20 강이다. 엄청난 내용.

  • nebhrajani-a/sicp: Racket implementation and notes for SICP’s video lectures.

https://github.com/nebhrajani-a/sicp

Lecture Notes

Lecture Notes | Structure and Interpretation of Computer Programs | E-

Lecture Notes

This section contains the online lectures for the course, which are expected to be read by students in preparation for recitation sessions. Each lecture contains a set of exercises which students must complete by a given date. Please see the calendar for more information on the dates the exercises are due.

이 섹션에는 암송 세션을 준비하기 위해 학생이 읽어야 하는 코스에 대한 온라인 강의가 포함되어 있습니다. 각 강의에는 학생이 지정된 날짜까지 완료해야 하는 연습 문제가 포함되어 있습니다. 연습 문제 마감일에 대한 자세한 내용은 달력을 참조하세요.

Lec # Topics

  • L1 Introduction to Computation (PDF - 2.1 MB)
  • L2 Scheme Basics (PDF - 1.5 MB) A Story about using Lisp in a Startup Company (PDF)
  • L3 Procedures, Processes, and Recursion (PDF - 2.1 MB)
  • L4 Orders of Growth and Kinds of Procedures (PDF - 1.7 MB)
  • L5 Data Abstraction (PDF - 2.1 MB)
  • L6 Higher Order Procedures (PDF - 2.1 MB)
  • L7 Good Programming Practices (PDF - 1.6 MB)
  • L8 Using Higher Order Procedures (PDF - 1.6 MB)
  • L9 Symbols and Quotation (PDF - 1.4 MB)
  • L10 Tagged Data (PDF - 2.2 MB)
  • L11 Advanced Data Types (PDF - 2.2 MB)
  • L12 Data Mutation (PDF - 1.7 MB)
  • L13 Trees, Graphs and Search (PDF - 2.2 MB)
  • L14 Graphs and Search
  • L15 Environment Model (PDF 1 of 2 - 1.6 MB) (PDF 2 of 2 - 2.2 MB)
  • L16 Object Oriented Programming I (PDF - 2.3 MB)
  • L17 Object Oriented Programming II (PDF - 1.7 MB)
  • L18 Object Oriented Programming III (PDF - 2.0 MB)
  • L19 Interpretation, Interpreter Code (PDF)
  • L20 The Meta-circular Evaluator (PDF - 2.6 MB), Evaluator Code (PDF)
  • L21 Lazy Evaluation (PDF 1 of 2 - 2.0 MB) (PDF 2 of 2 - 1.2 MB), Lazy Evaluator Code (PDF)
  • L22 Asynchronous Computing (PDF - 1.2 MB)
  • L23 Universal Machines (PDF)
  • L24 Geometric Folding Algorithms: Origami, Linkages, and Polyhedra
  • L25 Peer-To-Peer Computing Research: A Fad?
  • L26 Computability (PDF)

SICP BOOK

[2023-10-24 Tue 15:45] http://sarabander.github.io/sicp/html/index.xhtml

문제 풀이 유튜브 영상 리스트

리스트 SICP - youtube.com

  • 1 장

Structure and Interpretation of Computer Programs - Chapter 1.1 - you-

CANCELLED SICP Clojure

[2023-10-24 Tue 12:05]

https://github.com/junghan0611/sicp

TODO SICP Clojure and Racket with Courses

[2023-10-03 Tue 12:11]

러시아 자료가 좋다.

검색해보니 전략을 가지고 꾸준히 해 나아가야만 된다. 급한 일들과 별개로 그저 꾸준히 해 나아가는 프로젝트와 같다.

다행히 번역기가 있어서 두려울 것은 없다. 어떻게 학습해야 하는가? 전략을 탐구해야 한다.

근데 당장 급한 것은 오히려 Clojure 파트이다. 다시 돌아가자.

DEPRECATED Racket SICP 플러그인 설치

[2023-10-03 Tue 12:20] 패키지 매니저에서 설치. 쓸모가 있는지 모르겠다.

이광근 류광 번역 비교

[2023-10-24 Tue 15:23]

이광근 교수 번역 문제

아래 문서에 기록을 한다. 롬에는 내 생각의 단편들이니까 번역 펌 등은 넣지 말자.

1 장을 원서로 정확히 파악한다면 행복한 일. 이교수 버전을 보고 좋다면 훌륭한 일. 류광 버전 자바스크립트라는 허상을 넘어서 본다면 이 또한 멋진 일. 1 장 제목이 함수를 이용한 추상화이다. ‘함수’ ‘프로시저’ 뭐든 간에 추상화를 배우는 일이다. 2 장에서 데이터를 이용한 것도 있다. /home/junghan/sync/org/git/sicp-org/sicp-ch1.org:1 [2023-01-11 Wed 14:09]

1 Introduction 번역 비교

The acts of the mind, wherein it exerts its power over simple ideas, are chiefly these three: 1. Combining several simple ideas into one compound one, and thus all complex ideas are made. 2. The second is bringing two ideas, whether simple or complex, together, and setting them by one another so as to take a view of them at once, without uniting them into one, by which it gets all its ideas of relations. 3. The third is separating them from all other ideas that accompany them in their real existence: this is called abstraction, and thus all its general ideas are made.

–John Locke, An Essay Concerning Human Understanding (1690)

  • 이교수 번역 머리속에서 일어나는 일, 곧 단순한 아이디어들을 가지고 쓸모 있는 아이디어를 만들어 내는 일은 주로 다음 세 가지로 나뉜다. 1 첫째는 여러 단순한 아이디어를 한 아이디어로 묶어내는 것인데, 모든 복잡한 생각이 이렇게 나온다. 2 둘째는 단순한 아이디어와 복잡한 아이디어를 함께 꺼내 놓되 하나로 묶지 않고 죽 훑어보도록 펼쳐 놓는 것인데, 이렇게 하여 관계에 대한 모든 아이디어를 이끌어 낸다. 3 셋째는 실제 속에 복잡하게 얽혀 있는 다른 것들에서 아이디어를 분리하는 것인데, 이를 요약(간추리기, 추상화)이라고 한다. 모든 일반적인 아이디어들이 이렇게 만들어 진다.

  • 류광 번역 단순 관념(simple idea)에 그 힘을 행사하는 지성의 행위는 주로 다음 세 가지다. 1 다수의 단순 관념을 하나의 복합(compound) 관념으로 조합한다. 복잡한(complex) 관념들은 모두 이런 식으로 만들어진다. 2. 둘째는 두 관념(단순 관념이든 복합 관념이든)을 가져와 또 다른 관념으로 설정함으로써 그 둘을 하나의 관념으로 통합하지 않고도 두 관념을 한 번에 볼 수 있게 만드는 것이다. 관계에 대한 관념은 모두 이런 식으로 만들어진다. 3. 셋째는 하나의 관념을 그 실제 존재에 수반하는 다른 모든 관념으로부터 분리하는 것이다. 이를 추상화라고 부르며, 일반적인 관념은 모두 이런 식으로 만들어진다.

뭐가 좋다고 말하기가 어렵다. 인용문을 가져온 것 뿐이니까. 조금 더 진행해 보자. 번역은 번역가의 몫이란게 분명히 있기 마련이다.

Computational process

We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.

이제부터 우리가 공부할 것은 계산적 과정이라는 아이디어다. 이 과정은 컴퓨터 안에 사는 추상적인 존재이다. 과정은 점차 전개되면서 데이터라고 부르는 또 다른 존재를 조작하게 된다. 하나의 과정은 일정한 규칙들의 패턴으로 전개되는데, 그러한 패턴이 바로 프로그램이다. 인간은 프로그램을 작성함으로써 과정의 전개를 이끈다. 본질적으로, 프로그래머는 자신의 주문(spell)들로 컴퓨터의 영혼을 불러낸다.

[2023-01-11 Wed 14:24]

Related-Notes

References

해럴드 에이블슨, 제럴드 제이 서스먼, 마틴 헨즈, 토비아스 브릭스타드, and 줄리 서스먼. 2022. 자바스크립트로 배우는 SICP : 컴퓨터 프로그램의 구조와 해석. Translated by 류광. https://www.yes24.com/Product/Goods/116469364.
해럴드 애빌슨, 제럴드 제이 서스먼, and 줄리 서스먼. 2016. SICP 컴퓨터 프로그램의 구조와 해석. Translated by 이광근. https://www.yes24.com/Product/Goods/23951885.
마지막 수정일자