컴파일러 개발자가 들려주는 C 이야기
Regular price
$30.34
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
이 책은 모든 프로그래머의 두 번째 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》 등 집필)
《컴파일러 개발자가 들려주는 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》 등 집필)
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
목차
목차
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에서 증가문들이 의미하는 차이는 무엇인가?
-라이브러리 호출이 시스템 호출과 다른 점은 무엇인가?
-파일 기술자가 파일 포인터와 다른 점은 무엇인가?
-부호 있는 변수인지 아닌지 알아내는 코드를 작성하라
-이진트리에서 값을 인쇄할 때의 시간 복잡도는 얼마나 되는가?
-이 파일에서 임의의 문자열을 꺼내시오
-쉬어 가기: 기압계로 건물을 측정하는 방법
-더 읽을거리
-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에서 증가문들이 의미하는 차이는 무엇인가?
-라이브러리 호출이 시스템 호출과 다른 점은 무엇인가?
-파일 기술자가 파일 포인터와 다른 점은 무엇인가?
-부호 있는 변수인지 아닌지 알아내는 코드를 작성하라
-이진트리에서 값을 인쇄할 때의 시간 복잡도는 얼마나 되는가?
-이 파일에서 임의의 문자열을 꺼내시오
-쉬어 가기: 기압계로 건물을 측정하는 방법
-더 읽을거리
저자
저자
페터르 판데르린던
Peter Van Der Linden
썬 마이크로시스템즈에서 14년간 컴파일러와 커널 개발자로 근무했고 이후에 애플, 모토로라, 마스터카드 등을 거쳐 현재 실리콘 밸리에서 기술 컨설턴트로 활동 중이다.
썬 마이크로시스템즈에서 14년간 컴파일러와 커널 개발자로 근무했고 이후에 애플, 모토로라, 마스터카드 등을 거쳐 현재 실리콘 밸리에서 기술 컨설턴트로 활동 중이다.
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.
$99 이상 무료 배송
3% 리워드 크레딧 적립
Secure Payment

