유닉스 운영 체제 개발 과정에서 1972년에 탄생한 C는 제약이 많은 당시의 하드웨어에 맞춰 최적의 성능을 발휘할 수 있도록 만들어졌습니다. 오늘날 널리 쓰이는 거의 모든 운영 체제의 커널이 C를 이용해 구현된 것을 보면 알 수 있듯 C는 하드웨어와 밀접한 관련이 있는 언어입니다.

하지만 수십 년이 흐른 지금, 언어만을 떼어놓고 배우는 입장에서는 왜 이런 언어적 특성이 생겼는지 맥락을 이해할 수 없는 경우가 허다합니다. C가 여전히 엄청난 영향력을 발휘하고 있는 것에 비해 프로그래머들의 C에 대한 이해는 부족한 것이 현실입니다.

| 2022년 1월에도 C는 2위에 올라 있다. 최근 각광받는 IoT나 의료기기 등 메모리는 작고 성능은 빨라야 하는 분야에 C를 대체할만한 언어가 없기 때문이다. (https://www.tiobe.com/tiobe-index)

《컴파일러 개발자가 들려주는 C 이야기》는 C의 출현 배경, 언어적 특성과 단점, 난해한 점, 문제 해결 방법 등을 담고 있습니다. 썬 마이크로시스템즈에서 14년간 컴파일러와 커널 개발자로 근무한 저자는 C의 언어적 특성이 하드웨어와 어떤 연관이 있는지, C 언어의 어떤 부분이 혼동을 주는지, 이로 인해 어떤 문제가 발생할 수 있는지(혹은 발생했는지), C 언어 표준화 과정에서 어떤 문제가 생겼는지 등 일반적인 C 책에서 볼 수 없는 내용들을 다룹니다.

이 책의 원서는 1994년에 출간되었고 개정도 이뤄진 적이 없지만 여전히 독자들에게 유익한 책으로 평가받고 있습니다. 오래된 내용임에도 C 언어의 근본적인 부분을 이야기하고 있어서 많은 내용이 현재도 유효합니다. 예전에 작성한 C 코드가 지금까지 남아 큰 문제를 일으킬 수 있다는 점을 생각해 본다면 이 책의 내용을 ‘낡은 것’으로 치부하고 넘어갈 수는 없을 것입니다. 또 이 책에 수록된 대부분의 설명, 팁, 기술은 다른 책에서 찾기 어려운 것으로, 진짜 전문가들의 실무 경험에서 얻은 내용을 수록했습니다. C 언어에 대한 지식뿐만 아니라 실제 프로젝트에서의 실패담이나 뒷이야기 등도 접할 수 있습니다.

“명확하면서도 재미있는 책이다. 전문 프로그래머라면 이 책을 좋아할 것이며, 특히 대학원생에게는 더욱 환영받을 것이다. 부록 A만으로도 이 책을 구매할 가치가 있을 정도로 대단한 조언으로 가득 차 있다.”

– 잭 베이들러 체어맨(스크랜튼대학교 컴퓨터과학과 교수)

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

– 데이비드 S. 플래트(롤링 선더 컴퓨팅)

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

– 존 배리(《Sunburst》, 《Technobabble》 등 집필)

저자는 서문에서 ‘이 책이 모든 프로그래머의 두 번째 C 책이 되어야 한다’고 말하고 있습니다. 초급자가 읽기에는 어려울 수 있지만 어느 정도 C를 경험해봤다면 이 책을 통해 한 단계 발전할 수 있을 것입니다.

《컴파일러 개발자가 들려주는 C 이야기》는 다음 서점에서 구입하실 수 있습니다.

교보문고 | YES24 | 알라딘 | 인터파크