제1장 함수를 이용한 추상화
1.1 프로그래밍의 기본 요소
1.1.1 표현식
1.1.2 이름 붙이기와 환경
1.1.3 연산자 조합의 평가
1.1.4 복합 함수
1.1.5 함수 적용의 치환 모형
1.1.6 조건부 표현식과 술어
1.1.7 예제: 뉴턴 방법으로 제곱근 구하기
1.1.8 블랙박스 추상으로서의 함수
1.2 함수와 과정(함수가 생성하는
1.2.1 선형 재귀와 반복
1.2.2 트리 재귀
1.2.3 증가 차수
1.2.4 거듭제곱
1.2.5 최대공약수
1.2.6 예제: 소수 판정
1.3 고차 함수를 이용한 추상의 정식화
1.3.1 함수를 받는 함수
1.3.2 람다 표현식을 이용한 함수 구축
1.3.3 일반적 방법으로서의 함수
1.3.4 함수를 돌려주는 함수
제2장 데이터를 이용한 추상화
2.1 데이터 추상화
2.1.1 예제: 유리수 산술 연산
2.1.2 추상화 장벽
2.1.3 데이터란 무엇인가?
2.1.4 심화 연습문제: 구간 산술
2.2 위계적 데이터와 닫힘 성질
2.2.1 순차열의 표현
2.2.2 위계적 구조
2.2.3 합의된 인터페이스로서의 순차열
2.2.4 예제: 그림 언어
2.3 기호 데이터
2.3.1 문자열
2.3.2 예제: 기호 미분
2.3.3 예제: 집합의 표현
2.3.4 허프먼 부호화 트리
2.4 추상 데이터의 다중 표현
2.4.1 복소수의 여러 표현
2.4.2 태그된 데이터
2.4.3 데이터 지향적 프로그래밍과 가산성
2.5 일반적 연산을 갖춘 시스템
2.5.1 일반적 산술 연산
2.5.2 형식이 서로 다른 데이터 객체들의 결합
2.5.3 예제: 기호 대수
제3장 모듈성, 객체, 상태
3.1 배정과 지역 상태
3.1.1 지역 상태 변수
3.1.2 배정 도입의 이득
3.1.3 배정 도입의 비용
3.2 평가의 환경 모형
3.2.1 평가 규칙들
3.2.2 간단한 함수 적용의 예
3.2.3 지역 상태 저장소로서의 프레임
3.2.4 내부 선언
SICP, 자바스크립트를 만나다
프로그래밍의 바이블 『컴퓨터 프로그램의 구조와 해석』(SICP이 자바스크립트를 만났다. 1985년부터 지금까지 전 세계 수많은 교육기관에서 교과서로 채택되며 컴퓨터 과학 교과과정에 영향을 미친 이 책은 프로그래머 사이에서 마법사 책(Wizard Book이라는 별명으로 유명하다. SICP는 사실 모든 프로그래밍 언어에서 사용하기 유용하고 강력한 프로그램 조직화 방법을 소개하지만 스킴(Scheme이라는 언어를 사용해 진입 장벽이 있었다. 이 책은 그런 SICP를 많은 개발자들에게 친숙한 언어인 자바스크립트로 옮긴 책이다. 여러분의 사고법을 바꿔줄 설명과 이를 적용해보는 연습문제를 통해 마법 능력을 한껏 키워보자.
- 대상 독자
프로그래밍적인 사고법을 배우고 싶은 학생
효율적인 프로그램을 만들려는 개발자
스킴이라는 생소한 언어 때문에 SICP에 엄두를 내지 못했던 독자
- 배우는 내용
고수준 프로그래밍 언어에 공통으로 적용되는 프로그래밍 개념
다른 언어를 사용해 새 언어를 확립하는 기술
하드웨어 설계자의 관점에서 프로그래밍 요소를 구현하는 법
추천사
“‘더 나은 프로그래머가 되려면 어떻게 해야 하나요?’라고 묻는 이에게 이 책을 추천한다.”
_더글러스 크락포드, 『자바스크립트는 왜 그 모양일까?』의 저자
“뛰어난 재능과 탁월한 교수법, 새로운 내용으로 세심하게 개정하고 현대화한 고전.”
_올리비에 댄비, 예일-NUS 대학
“프로그래밍 서적은 프로그래밍 언어에 얼마나 많은 영향을 받을까? 이 책은 SICP를 자바스크립트로 훌륭하게 옮겼다. 오늘날의 프로그래머에게 탁월한 선택이다.”
_피터 판 로이, 루뱅 카톨릭 대학교