컴파일러 개발자가 들려주는 C 이야기

컴파일러 개발자가 들려주는 C 이야기

$27.00
Description
이 책은 모든 프로그래머의 두 번째 C 책이어야 한다.
《컴파일러 개발자가 들려주는 C 이야기》는 최고의 C 프로그래머들이 사용한 코딩 테크닉을 보여준다. 이러한 코딩 기법과 전략은 다른 프로그래밍 언어에도 적용할 수 있다. 저자는 썬 마이크로시스템즈의 컴파일러/운영 체제 커널 부문에서 근무한 실무 경험을 바탕으로 실용적인 사례들을 쉽고 재미있는 방식으로 풀어낸다. IBM PC와 유닉스 시스템 전문가들의 실전 노하우를 통해 재미와 교육적 요소를 모두 잡는다. C 언어의 유래부터 구현 및 실무에서의 활용까지, 깊은 곳에 숨어 있는 C 언어의 지식과 함께 뒷이야기가 궁금한 개발자라면 반드시 읽어야 할 필독서이다. 또한 C++ 개요도 포함되어 누구나 쉽게 C++에 대한 기본적인 지식을 얻을 수 있다.

ㆍ 금성 탐사선을 날려버린 소프트웨어
ㆍ AT&T 전화망 전체를 다운시킨 C 버그
ㆍ 실리콘 밸리의 C 개발자 채용 면접시험 비밀
ㆍ 개발자가 핼러윈과 크리스마스를 구분하지 못하는 이유
ㆍ C로 작성한 BASIC 인터프리터 전체 코드

“명확하면서도 재미있는 책이다. 전문 프로그래머라면 이 책의 문체를 좋아할 것이며, 특히 대학원생에게는 더욱 환영받을 것이다. 부록 A만으로도 이 책을 구매할 가치가 있을 정도로 대단한 조언으로 가득 차 있다.”
- 잭 베이들러 체어맨(스크랜튼대학교 컴퓨터과학과 교수)

“그래서 extern char *cp가 extern char cp[]와 같지 않은 것이었군. 이 책을 통해 겉보기에는 같아 보이는 이 두 문장이 왜 예상대로 동작하지 않는지를 명확히 알게 되었다. 또한 C 개발자 면접시험에 대한 내용도 마음에 쏙 든다.”
- 데이비드 S. 플래트(롤링 선더 컴퓨팅)

“저자는 C 언어 전문지식과 유머감각을 탁월하게 엮어 하나의 책으로 완성해냈다. 저자의 재미난 표현, 실제 사례를 통한 경험 지식으로 장황하고 지루한 산문으로 대표되는 전문서 장르에 새 지평을 열었다.”
- 존 배리(《Sunburst》, 《Technobabble》 등 집필)
저자

페터르판데르린던

PeterVanDerLinden
썬마이크로시스템즈에서14년간컴파일러와커널개발자로근무했고이후에애플,모토로라,마스터카드등을거쳐현재실리콘밸리에서기술컨설턴트로활동중이다.

목차

1장C가지나온길
-C의초창기
-C언어와함께했던초창기경험
-표준I/O라이브러리및C전처리기
-K&RC
-오늘날:안시C
-다좋은데정말표준인가?
-컴파일한도
-안시C표준구조
-즐거움,재미,학습을모두잡을수있는안시C표준읽기
-어디까지가‘조용한변경’인가?
-쉬어가기:구현방법에따라정의된pragma효과

2장버그가아니라언어의기능이다
-언어의기능이중요한이유:포트란버그를실제로일으킨방법
-커미션죄
-미션죄
-오미션죄
-쉬어가기:일부기능은실제로버그다!

3장C선언문해독
-컴파일러만이사랑할수있는문법
-선언문구성방법
-우선순위규칙
-다이어그램을이용하여C선언문해석하기
-typedef를친구로만들자
-typedefintx[10]과#definexint[10]의차이
-typedefstructfoo{...foo;}foo;의의미
-모든파싱을이해하는코드조각
-더읽을거리
-쉬어가기:밀랍올챙이씹기소프트웨어…

4장충격적인진실:C배열과포인터는다르다
-배열은포인터가아니다
-내코드가동작하지않는이유
-선언이란무엇인가?정의란무엇인가?
-배열과포인터에접근하는방법
-선언을정의와일치시킬것
-배열과포인터의차이점
-쉬어가기:회문으로대동단결

5장링킹에대한고찰
-라이브러리,링킹,로딩
-동적링크의이점
-라이브러리와링크의다섯가지특별한비밀
-인터포지셔닝을조심할것
-링커보고서파일생성
-쉬어가기:‘누구와얘기하는지맞히시오’튜링테스트도전
-더읽을거리

6장우아한동작:런타임데이터구조
-a.out과a.out의유래
-세그먼트
-운영체제가a.out을이용하여하는일
-C런타임이a.out으로하는일
-함수호출시일어나는일:프로시저활성레코드
-제어스레드
-setjmp와longjmp
-유닉스스택세그먼트
-마이크로소프트도스스택세그먼트
-유용한C도구
-쉬어가기:카네기멜런대학의프로그래밍퍼즐

7장고마운메모리
-인텔80x86제품군
-인텔80x86메모리모델및동작방법
-가상메모리
-캐시메모리
-데이터세그먼트와힙
-메모리누수
-버스가고장났다면기차를타라?
-쉬어가기:물건왕과페이징게임

8장프로그래머가크리스마스와핼러윈을구분하지못하는이유
-도량형단위포트셰비에시스템
-비트패턴으로글리프만들기
-모르는사이에타입이바뀐다
-프로토타입고통
-캐리지리턴없이char얻기
-C로유한상태기계구현하기
-소프트웨어가하드웨어보다더어렵다!
-캐스트방법과이유
-쉬어가기:국제난독C코드대회

9장배열에대한더많은이야기
-배열이포인터가될때
-혼돈의시작
-C가배열파라미터를포인터로취급하는이유
-부분인덱싱
-배열과포인터의상호교환가능성요약
-C에도다차원배열이있는데…
-…그러나다른모든프로그래밍언어는그것을‘배열의배열’이라고한다
-다차원배열분해
-배열을메모리에배치하는방법
-배열초기화
-쉬어가기:하드웨어/소프트웨어의절충

10장포인터에대한더많은이야기
-다차원배열레이아웃
-포인터의배열은‘일리프벡터’
-비정형배열을위한포인터
-일차원배열을함수에전달하기
-포인터를사용하여다차원배열을함수에전달하기
-포인터를사용하여함수에서배열을반환하기
-포인터를사용하여동적배열을만들고사용하기
-쉬어가기:프로그램증명의한계
-더읽을거리

11장C를알면C++는쉽다!
-전진,객체지향프로그래밍!
-추상화:사물의본질적인특성추출
-캡슐화:관련있는타입,데이터,함수를함께그룹화
-몇가지클래스샘플:미리정의된타입과동일한권한을부여하는사용자정의타입
-가용성
-선언
-메서드호출방법
-상속:이미정의된작업의재사용
-다중상속:두개이상의기본클래스에서파생
-오버로딩:한가지이름으로서로다른타입의동일작업을수행
-C++연산자오버로딩
-C++입출력
-다형성:런타임바인딩
-설명
-C++에서다형성을수행하는방법
-멋진다형성
-C++의다른측면
-거기에갈생각이었다면여기서시작하지않았을것이다
-꽤나복잡해서손대고싶지않을수도있겠지만그것은마을에서유일한게임이다
-쉬어가기:죽은컴퓨터사회
-쉬어가기마지막:수료증!
-더읽을거리

부록프로그래머면접의비밀
-실리콘밸리프로그래머면접
-연결리스트에서사이클을어떻게찾을수있는가?
-C에서증가문들이의미하는차이는무엇인가?
-라이브러리호출이시스템호출과다른점은무엇인가?
-파일기술자가파일포인터와다른점은무엇인가?
-부호있는변수인지아닌지알아내는코드를작성하라
-이진트리에서값을인쇄할때의시간복잡도는얼마나되는가?
-이파일에서임의의문자열을꺼내시오
-쉬어가기:기압계로건물을측정하는방법
-더읽을거리