스크랩

구간

컴파일러 개발자가 들려주는 C 이야기 아무도 알려주지 않던 심오한 C의 비밀

페터르 판데르린던 저 | 정기훈 역 | 인사이트 | 2022년 01월

북트리

정가
$54.00
판매가
$39.37 (27%↓) 최저가 보상
적립금
$0.79 (2%P)
출고예상일
2026년 10월 07일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788966263318 / 380쪽 188 x 240 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

“명확하면서도 재미있는 책이다. 전문 프로그래머라면 이 책의 문체를 좋아할 것이며, 특히 대학원생에게는 더욱 환영받을 것이다. 부록 A만으로도 이 책을 구매할 가치가 있을 정도로 대단한 조언으로 가득 차 있다.” - 잭 베이들러 체어맨(스크랜튼대학교 컴퓨터과학과 교수) “그래서 extern char *cp가 extern char cp[]와 같지 않은 것이었군. 이 책을 통해 겉보기에는 같아 보이는 이 두 문장이 왜 예상대로 동작하지 않는지를 명확히 알게 되었다. 또한 C 개발자 면접시험에 대한 내용도 마음에 쏙 든다.” - 데이비드 S. 플래트(롤링 선더 컴퓨팅) “저자는 C 언어 전문지식과 유머감각을 탁월하게 엮어 하나의 책으로 완성해냈다. 저자의 재미난 표현, 실제 사례를 통한 경험 지식으로 장황하고 지루한 산문으로 대표되는 전문서 장르에 새 지평을 열었다.” - 존 배리(《Sunburst》, 《Technobabble》 등 집필)

저자 소개

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

역자 : 정기훈
를 겸비해야만 만렙 직장인이 된다고 믿는, 그래서 오늘도 보고서와 코드 사이에서 떠도는 평범한 중렙(이라고 착각하는) 직장인이다. 『원리로 이해하는 네트워크 입문』을 집필했으며, 『깐깐하게 배우는 C』, 『코딩 트레이닝』, 『마스터링 아파치 스파크』, 『COCOS2D 게임 프로그래밍』, 『Mac/iOS 개발자를 위한 LEARNING 오브젝티브-C 2.0』, 『LEARNING iOS 게임 프로그래밍』 등 다수의 IT 서적을 번역하였다.

목차

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

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

3장 C 선언문 해독
-컴파일러만이 사랑할 수 있는 문법
-선언문 구성 방법
-우선순위 규칙
-다이어그램을 이용하여 C 선언문 해석하기
-typedef를 친구로 만들자
-typedef int x[10]과 #define x int[10]의 차이
-typedef struct foo { ... 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에서 증가문들이 의미하는 차이는 무엇인가?
-라이브러리 호출이 시스템 호출과 다른 점은 무엇인가?
-파일 기술자가 파일 포인터와 다른 점은 무엇인가?
-부호 있는 변수인지 아닌지 알아내는 코드를 작성하라
-이진트리에서 값을 인쇄할 때의 시간 복잡도는 얼마나 되는가?
-이 파일에서 임의의 문자열을 꺼내시오
-쉬어 가기: 기압계로 건물을 측정하는 방법
-더 읽을거리

top