Description
모든 프로그래머는 마법사다
난해한 프로그래밍 언어로 만들어진 컴퓨터 프로그램. 프로그램은 일정한 패턴을 따라 주어진 과제를 해결해 나간다. 즉, 프로그래머는 프로그램이라는 주문을 외워 컴퓨터에 깃든 영혼을 부리는 마법사인 셈이다. 여기 모든 마법사를 위한 마법사 책이 찾아왔다. 이 책은 모든 프로그래밍 언어에서 유용한 사고법과 그 표현법을 소개해 프로그램을 효율적으로 조직화하는 법을 알려준다. 이제 뛰어난 마법사의 비법을 알아보자.
저자

해럴드에이블슨,제럴드제이서스먼,마틴헨즈,토비아스브릭스타드,줄리서스먼

(HaroldAbelson)
MIT컴퓨터과학및공학학부클래스오브1922교수(Classof1922ProfessorofComputerScienceandEngineering)

목차

제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내부선언
3.3변경가능데이터를이용한모형화
3.3.1변경가능목록구조
3.3.2대기열의표현
3.3.3테이블의표현
3.3.4디지털회로시뮬레이터
3.3.5제약의전파
3.4동시성:시간은필수요건이다
3.4.1동시적시스템에서시간의본질
3.4.2동시성제어메커니즘
3.5스트림
3.5.1지연평가를이용한스트림표현
3.5.2무한스트림
3.5.3스트림패러다임의활용
3.5.4스트림과지연평가
3.5.5함수형프로그램의모듈성과객체의모듈성

제4장메타언어적추상화
4.1메타순환적평가기
4.1.1평가기의핵심부
4.1.2구성요소의표현
4.1.3평가기의자료구조들
4.1.4평가기의실행
4.1.5프로그램으로서의데이터
4.1.6내부선언들
4.1.7구문분석과실행의분리
4.2느긋한평가
4.2.1정상순서와적용적순서
4.2.2느긋한평가를이용하는해석기
4.2.3느긋한목록으로서의스트림
4.3비결정론적컴퓨팅
4.3.1검색과amb
4.3.2비결정론적프로그램의예몇가지
4.3.3amb평가기의구현
4.4논리프로그래밍
4.4.1연역적정보검색
4.4.2질의시스템의작동방식
4.4.3논리프로그래밍과수리논리학의관계
4.4.4질의시스템의구현

제5장레지스터기계를이용한계산
5.1레지스터기계의설계
5.1.1레지스터기계의서술을위한언어
5.1.2기계설계의추상들
5.1.3서브루틴
5.1.4스택을이용한재귀구현
5.1.5명령요약
5.2레지스터기계시뮬레이터
5.2.1기계모형
5.2.2어셈블러
5.2.3명령과명령실행함수
5.2.4기계성능의감시와측정
5.3저장소할당과쓰레기수거
5.3.1벡터구조로표현된메모리
5.3.2무한메모리라는환상의유지
5.4명시적제어평가기
5.4.1디스패처와기본평가서브루틴
5.4.2함수적용의평가
5.4.3블록,배정,선언
5.4.4평가기의실행
5.5컴파일
5.5.1컴파일러의구조
5.5.2구성요소들컴파일
5.5.3함수적용과반환문의컴파일
5.5.4명령렬들의조합
5.5.5컴파일된코드의예
5.5.6어휘순주소접근
5.5.7컴파일된코드와평가기의연동

출판사 서평

SICP,자바스크립트를만나다

프로그래밍의바이블『컴퓨터프로그램의구조와해석』(SICP)이자바스크립트를만났다.1985년부터지금까지전세계수많은교육기관에서교과서로채택되며컴퓨터과학교과과정에영향을미친이책은프로그래머사이에서마법사책(WizardBook)이라는별명으로유명하다.SICP는사실모든프로그래밍언어에서사용하기유용하고강력한프로그램조직화방법을소개하지만스킴(Scheme)이라는언어를사용해진입장벽이있었다.이책은그런SICP를많은개발자들에게친숙한언어인자바스크립트로옮긴책이다.여러분의사고법을바꿔줄설명과이를적용해보는연습문제를통해마법능력을한껏키워보자.

대상독자
● 프로그래밍적인사고법을배우고싶은학생
● 효율적인프로그램을만들려는개발자
● 스킴이라는생소한언어때문에SICP에엄두를내지못했던독자

배우는내용
● 고수준프로그래밍언어에공통으로적용되는프로그래밍개념
● 다른언어를사용해새언어를확립하는기술
● 하드웨어설계자의관점에서프로그래밍요소를구현하는법