码迷,mamicode.com
首页 > 其他好文 > 详细

第0章 导读

时间:2016-08-21 00:40:53      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

正文:

0.本书要讨论的问题:程序并没有按照程序员所期待的方式执行。更进一步,限定在C语言程序中可能产生这类错误的方式。

1.从较低的层面考察,正如一本书是由一个一个单词所组成的一样,程序是由符号序列所组成的。将程序分解成符号的过程,称之为“词法分析”。

2.类似于一本书可以看成是由单词进一步结合而成的句子所组成的集合,组成程序的这些符号又可以看成是语句和声明的序列。符号或者单词如何组成更大的单元的语法细节最终决定了语义。

3.关于语义误解,即程序员的本意是希望表达某种事物,而实际表示的却是另外一种事物。

4.C程序经常是由若干个部分组成,它们分别进行编译,最后再整合起来。这个过程称为链接,是程序和其支持环境之间关系的一部分。

5.库函数。

6.由于C预处理器的介入,实际运行的程序并不是最初编写的程序。虽然不同预处理器的实现存在或多或少的差异,但是大部分特性是各种预处理器都支持的。

7.可移植性问题。

8.建议与答案。

PS:附录中讨论了3个常用却普遍地被误解的库函数。

 

练习:

0-1.

你是否愿意购买一个返修率很高的厂家所生产的汽车?如果厂家声明它已经做出了改进,你的态度是否会改变?用户为你找出程序中的bug,你真正损失的是什么?

0-2.

修建一个100英尺长的护栏,护栏的栏杆之间相距10英尺,你需要多少根栏杆?

0-3.

在烹饪时你是否失手用菜刀切伤过自己的手?怎样改进菜刀使得使用更安全?你是否愿意使用这样一把经过改良的菜刀?

 

答案:

0-1.

我们之所以选择一种产品而不选择另一种产品,其中一个重要的考虑因素就是厂家的信誉。信誉一旦失去,就很难重新获得。我们需要认真思考,企业最近产品的高质量是真实的,还是纯属偶然。

大多数人们在已经知道一个产品可能存在重大设计缺陷时,不会去购买这个产品——除非这是一个软件产品。很多人写过一些给其他人用的程序。人们对软件产品不能工作已经习以为常、见怪不怪。我们应该用产品的高质量来让这些人大吃一惊。

0-2.

11根。围栏一共分成10段,但栏杆却需要11根。请亲自数一数。本书3.6节讨论了这个问题与一类常见的程序设计错误的关系。

0-3.

我们很容易想到办法让一个工具更安全,代价是原来简单的工具现在要变得复杂一些。食品加工机一般有连锁装置,保护使用者不让手指受伤。但是菜刀却不同,给这样一个简单、灵活的工具附加保护手指以避免受伤的装置,只能让它失去简单灵活的特点。实际上,这样做最后得到的也许更像一台食品加工机,而不是一把菜刀。

使其难于做傻事常常会使其难于做聪明事,正所谓弄巧成拙。

第0章 导读

标签:

原文地址:http://www.cnblogs.com/VincentValentine/p/5791580.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!