Description
[컴퓨터 프로그램의 구조와 해석]은 MIT 컴퓨터 과학 입문 교과 과정에서 쓰는 교과서로, 프로그래밍 언어 문법이 아닌 프로그램의 뼈대를 구성하는 기술을 익히게 도와주는 책이다.
저자

해럴드애빌슨,제럴드제이서스먼,줄리서스먼

저자해럴드애빌슨(HaroldAbelson)은매사추세츠공과대학(MIT)의전기공학&컴퓨터과학학부(DepartmentofElectricalEngineeringandComputerScience)에서컴퓨터과학을가르치며,미국전기전자기술자협회(IEEE)의특별회원이다.CreativeCommons와PublicKnowledge,자유소프트웨어연합(FSF)을세우는일을이끌었으며,MIT교육기술자문위원회의공동의장으로일한다.

목차

목차
1.프로시저를써서요약하는방법
1.1프로그램짤때바탕이되는것
1.1.1식
1.1.2이름과환경
1.1.3엮은식(combination)을계산하는방법
1.1.4묶음프로시저(compoundprocedure)
1.1.5맞바꿈계산법(substitutionmodel)으로프로시저를실행하는방법
1.1.6조건식과술어(predicate)
1.1.7연습:뉴튼법(newtonmethod)으로제곱근찾기
1.1.8블랙박스처럼간추린프로시저
1.2프로시저와프로세스
1.2.1되돌거나(recursion)반복하는(iteration)프로세스
1.2.2여러갈래로되도는프로세스
1.2.3프로세스가자라나는정도
1.2.4거듭제곱
1.2.5최대공약수
1.2.6연습:소수찾기
1.3차수높은프로시저(higher-orderprocedure)로요약하는방법
1.3.1프로시저를인자로받는프로시저
1.3.2lambda로나타내는프로시저
1.3.3일반적인방법을표현하는프로시저
1.3.4프로시저를만드는프로시저
2.데이터를요약해서표현력을끌어올리는방법
2.1데이터요약데이터간추리기,데이터내용감추기
2.1.1연습:유리수를위한산술연산
2.1.2요약의경계(abstractionbarrier)
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연습:글자식의미분(symbolicdifferentiation)
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덮어쓰기와갇힌상태(localstate)
3.1.1갇힌상태변수(localstatevariable)
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관계알리기(constraintpropagation)
3.4병행성竝行性:시간은중요하다
3.4.1병행시스템에서시간의성질본질
3.4.2병행성을다스리는방법
3.5스트림
3.5.1스트림과(계산을)미룬리스트
3.5.2무한스트림(infinitestream)
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안쪽정의(internaldefinition)
4.1.7문법분석과실행과정을떼어놓기
4.2Scheme바꿔보기-제때계산법
4.2.1식의값을구하는차례-정의대로계산법과인자먼저계산법
4.2.2제때계산법을따르는실행기
4.2.3제때셈리스트와스트림
4.3Scheme바꿔보기-비결정적계산
4.3.1amb와찾기
4.3.2비결정적프로그램짜기
4.3.3amb실행기구현
4.4논리로프로그램짜기
4.4.1연역식정보찾기
4.4.2쿼리시스템의동작방식
4.4.3논리프로그래밍은수학논리를따르는가?
4.4.4쿼리시스템만들기
4.4.4.1드라이버루프와쿼리값찍어내기(instantiation)
4.4.4.2실행기(evaluator)
4.4.4.3패턴매칭으로참말찾아내기
4.4.4.4규칙과동일화
4.4.4.5데이터베이스의관리
4.4.4.6스트림연산
4.4.4.7쿼리의문법을처리하는프로시저
4.4.4.8일람표와정의
5.레지스터기계로계산하기
5.1레지스터기계설계하기
5.1.1레지스터기계를묘사하는언어
5.1.2기계디자인에서의속내용감추기(abstraction)
5.1.3서브루틴
5.1.4스택(stack)을이용해되돌기(recursion)구현하기
5.1.5명령어정리
5.2레지스터기계시뮬레이터
5.2.1기계모형
5.2.2어셈블러
5.2.3명령에해당하는실행프로시저만들기
5.2.4기계성능지켜보기
5.3메모리할당(memoryallocation)과재활용(garbagecollection)
5.3.1벡터로나타낸메모리
5.3.2무한히많은메모리인양보이기
5.4제어가다보이는실행기
5.4.1제어가다보이는실행기의핵심부
5.4.2시퀀스계산과꼬리되돌기(tailrecursion)
5.4.3조건식,덮어쓰기(assignment),정의
5.4.4실행기돌리기
5.5번역(compilation)
5.5.1번역기의구조
5.5.2프로그램식의번역
5.5.3조합식번역하기
5.5.4명령줄한데합치기
5.5.5번역된코드의예
5.5.6텍스트에서변수의정의를파악하기(lexicaladdressing)
5.5.7번역된코드를실행기에연결하기
용어대역표
연습문제목차
참고문헌
찾아보기

출판사 서평

출판사서평
프로그래밍이무엇인가돌아보게해주는
MIT의컴퓨터과학입문교과서
마법사책(WizardBook)이라는별명으로도유명한이책은독특하기로소문난,MIT컴퓨터과학입문교과과정에서쓰는교과서로,프로그래밍언어문법이아닌프로그램의뼈대를구성하는기술을익히게해준다.흔한프로그래밍입문서와달리,난해하다는평을듣는LISP에서갈라져나온Scheme을활용하며,요약(abstraction)과조립식설계(modularity)에따라복잡한프로그램을간단하게짜는전략을보여준다.그뿐아니라,...
프로그래밍이무엇인가돌아보게해주는
MIT의컴퓨터과학입문교과서
마법사책(WizardBook)이라는별명으로도유명한이책은독특하기로소문난,MIT컴퓨터과학입문교과과정에서쓰는교과서로,프로그래밍언어문법이아닌프로그램의뼈대를구성하는기술을익히게해준다.흔한프로그래밍입문서와달리,난해하다는평을듣는LISP에서갈라져나온Scheme을활용하며,요약(abstraction)과조립식설계(modularity)에따라복잡한프로그램을간단하게짜는전략을보여준다.그뿐아니라,상태(state)가있는물체,덮어쓰기(assignment),병행프로그래밍,함수프로그래밍,제때계산법(lazyevaluation),비결정적프로그래밍(non-deterministicprogramming)등다양한프로그래밍이슈를살펴보며한걸음씩프로그램을설계하고짜맞추고살펴보고고쳐쓰면서,'과연프로그래밍이란무엇인가'돌이켜보게하고,생각하는방식과그생각을표현하는방식을가르쳐준다.
프로그래머를기르는마법서(WizardBook)
이책에담긴교과과정은한때세계300여대학에서사용되었으며,지금도100개넘는이름난대학에서가르치고있을만치,세계최고수준의프로그래밍교육이라일컫기에조금도모자람이없습니다만,아직도우리나라에서는이책의값어치가생각만큼그리널리알려지지는않은듯싶습니다.···(중략)···제경험으론,이책에담긴가르침이보기드물게깊고도넓은만큼,읽는사람들의오해도컸습니다.프로그램짜기를처음배우는이보다는,흔히들쓰는언어로프로그램을한참짜본사람들가운데서,이책의가르침을어긋나게받아들이거나우습게넘겨버리는이가훨씬많았습니다.저는적어도이책의3장까지차분히읽어가면서손수코드도쳐서돌려보고연습문제도꾸준히풀어보지않으면,이책이주는값어치를올바르게가늠하기어렵다고생각합니다.
-역자서문에서