返回介绍

译者序

发布于 2024-10-10 23:21:21 字数 1678 浏览 0 评论 0 收藏 0

1969 年“阿波罗 11 号”登月成功。贝尔实验室中一个叫 Ken Thompson 的年轻人为了一圆翱游太空的梦想,在当时的 Multics1系统上写了一个叫《星际之旅》的游戏。但当时大型机的机时费很贵,每玩一次公司就要为此支付 75 美金,于是 Thompson 打起了小型机 PDP-7 的主意。但当时的 PDP-7 只有一个简陋的运行时系统,不支持多用户,为了能双人对战,Thompson 找来 Dennis Ritchie 一起开发新的操作系统。

1 Multics 全称为 MULTiplexed Information and Computing System(多路信息计算系统)是 1964 年由贝尔实验室、MIT 和通用电气共同研发的一套安装在大型机上的多人多任务操作系统。因为工作进度缓慢,贝尔实验室于 1969 年退出该计划。

他们只花了一个月的时间就用汇编语言写出了操作系统的原型。同事 Peter Neumann 看到后,戏称这个系统为 Unics2。Unix 这个名字典出于此。

2 意思是 UNiplexed Information and Computing System(单路信息计算系统),用来影射 Multics。

1971 年,第一版的 Unix 已经能够支持两名用户在 PDP-11 上玩《星际之旅》了,但因为当时的 Unix 是用汇编语言写的,无法移植到其他机器上,所以他们决定用高级语言重写 Unix,可当时的高级语言无论从运行效率还是功能上都无法满足他们的需要。Thompson 先是在 BCPL 的基础上萃取出了 B 语言,Ritchie 又在 B 的基础上进行了重新设计,这才有了今天大名鼎鼎的 C 语言。

而现在你手上的就是一本关于 C 语言的书。

本书分为三个部分。

  • 第 1 章到第 4 章是基础知识,包括基本语法、指针、字符串、小工具与源文件。
  • 第 5 章到第 8 章为进阶内容,有结构、联合、数据结构、堆、函数指针、动/静态链接。
  • 最后四章是高级主题,内容涵盖了系统调用、进程间通信、网络编程和多线程。

每部分结束后还用一个实验来提高读者的动手能力。

本书最大的特点是每次在引出新概念前都会先提出一个问题,让读者在知道怎样做(how)之前先知道为什么这么做(why),并在解决问题的过程中不断提出新问题,让读者去解决,从而加深理解;书中还设有很多“问答”环节,提出并回答了一些读者在学习过程中可能会遇到的问题。除此之外,作者还使用了大量拟人手法,例如让编译器化身公众人物在访谈节目中现身说法,抑或让静态库和动态库对簿公堂。谈笑风生间,它们的特点,跃然纸上。无论你是音乐发烧友、推理迷,还是填字游戏爱好者,都可以在这本书中找到吸引你的元素。

两个改变世界的发明起初不过是为了一个游戏,从这个角度看,这本同样趣味十足的《嗨翻 C 语言》,能否算是对于这种精神的一种延续呢?

我在翻译的过程中力求真实传达作者的意图,无论是一个技术上的概念还是一段幽默。为了减轻阅读压力,我还将书中部分代码中的字符串也译为了中文,希望不是画蛇添足。

最后,感谢王琛、邱瑀庭等好友提出的建议;感谢作者 David Griffiths 耐心解答我提出的每一个问题。感谢图灵的李洁、李松峰、傅志红老师以及各位审读老师提供的帮助与支持。

程亦超

2012 年 12 月 17 日

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文