C 프로그래밍 언어 (책)

섬네일
C 프로그래밍 언어(The C Programming Language, 저자의 이니셜을 따서 K&R)는 브라이언 커니핸과 데니스 리치가 쓴 컴퓨터 프로그래밍 책이다. 데니스 리치는 C 프로그래밍 언어를 처음으로 설계하고 구현했으며, 언어 개발과 밀접하게 연관된 유닉스 운영체제를 공동 설계했다. 이 책은 C 언어의 개발과 대중화에 중요한 역할을 했으며, 오늘날에도 널리 읽히고 사용되고 있다. 이 책이 원본 언어 설계자에 의해 공동 저술되었고, 초판이 수년 동안 언어의 데 팍토 표준 역할을 했기 때문에 많은 사람들이 이 책을 C 언어에 대한 권위 있는 참고 자료로 여겼다.

 역사 
C는 1970년대 초 벨 연구소의 데니스 리치가 켄 톰프슨의 B 언어의 확장 버전으로 만들었다.
또 다른 벨 연구소 직원인 브라이언 커니핸은 최초의 C 튜토리얼을 작성했으며,
그는 리치를 설득하여 언어에 대한 책을 공동 저술하게 했다.
커니핸은 책의 "설명" 자료 대부분을 썼고, 리치의 참고 매뉴얼은 부록이 되었다.

1978년 2월 22일에 출판된 초판은 C 프로그래밍 언어에 대한 최초의 널리 사용 가능한 책이었다. 이 버전의 C는 때때로 K&R C(책의 저자를 따서)라고 불리며, 이 초기 버전을 나중에 ANSI C로 표준화된 C 버전과 구별하기 위해 사용된다.

1988년 4월, 책의 두 번째 판본이 출판되었는데, 당시 새로운 ANSI C 표준으로 인해 언어에 생긴 변경 사항, 특히 표준 라이브러리에 대한 참조 자료를 포함하도록 업데이트되었다. 이 책의 두 번째 판본(2024년 기준 최신판)은 20개 이상의 언어로 번역되었다. 2012년에는 두 번째 판본의 전자책 버전이 ePub, Mobi, PDF 형식으로 출판되었다.

C는 1989년(ANSI X3.159-1989로)에 처음 표준화되었으며 그 이후로 여러 차례 개정되었다. 그러나 최근 표준을 다루는 새로운 판본의 C 프로그래밍 언어는 발행되지 않았다.

 평가 
바이트 잡지는 1983년 8월 "[The C Programming Language]는 C 언어에 대한 결정적인 저서이다. 이 책을 읽기 전에는 더 이상 읽지 마라!"고 평가했다. 제리 푸어넬은 그해 잡지에서 이 책이 "여전히 표준 ... 다소 간결하다"고 썼다. 그는 이어서 "커니핸과 리치 없이 C 언어를 배울 수도 있지만, 그것은 어려운 방법이다. C에 대해 이 책만 산다면 너무 힘들게 일하는 것이다."라고 말했다.

 영향 
The C Programming Language는 명확한 표현과 간결한 처리로 테크니컬 라이팅의 모델로 자주 언급되었다. 예제는 일반적으로 언어의 일상적인 사용에서 접할 수 있는 완전한 프로그램으로 구성되며, 시스템 프로그래밍에 중점을 둔다. 저자들은 다음과 같이 썼다.

섬네일|"Hello, World!" 프로그램 by 브라이언 커니핸 (1978)
이 책은 최소한의 C 프로그램을 보여주기 위해 "hello, world"라는 텍스트만 출력하는 "Hello, World!" 프로그램을 소개했다. 그 이후로 많은 텍스트가 프로그래밍 언어를 소개하는 데 이 관례를 따르고 있다.

ANSI C가 등장하기 전에는 초판 텍스트가 C 컴파일러 개발자들에게 사실상의 언어 표준으로 사용되었다. ANSI C 표준화와 함께 저자들은 컴파일러 개발자가 아닌 프로그래머를 위해 두 번째 판을 더욱 의식적으로 작성했으며, 다음과 같이 썼다.

"C 프로그래밍 언어"가 대학 및 산업계에서 C를 처음 접한 프로그래머 세대에 미친 영향으로 인해 많은 사람들이 저자의 프로그래밍 스타일과 관례를 규범적인 실천은 아니더라도 권장되는 실천으로 받아들이게 되었다. 예를 들어, 책의 두 판에 제시된 프로그램의 코딩 및 서식 스타일은 종종 "K&R 스타일"이라고 불리며 유닉스 및 리눅스 커널의 소스 코드에서 관례적으로 사용되는 코딩 스타일이 되었다.

 같이 보기 
 C++ 프로그래밍 언어 (책)
 컴퓨터 과학 저널 목록
 소프트웨어 프로그래밍 저널 목록
 컴퓨터 잡지 목록
 컴퓨터 서적 목록

 각주 

 외부 링크 
 The C Programming Language, 두 번째 판 (인터넷 아카이브의 항목 정보)
 The C Programming Language - 데니스 리치의 페이지, 번역, 오타 등에 대한 정보 포함
 The C Programming Language - 브라이언 커니핸의 페이지 (대부분 동일하며, 약간 더 최신 정보 포함)
 The C Programming Language 연습 문제 해답

분류:컴퓨터 프로그래밍 책
분류:C 프로그래밍 언어