7.1 布尔逻辑

我们对数学函数的概念已经很熟悉了——我们在程序的执行中就讨论过它们。布尔函数也是将参数映射到一个值的数学函数,只是其中范围(函数参数)和值域(函数值)都仅仅是两个值中的一个。无论我们将这两个值称为true和false、是和否,还是0和1,概念都是一样的。布尔函数的研究被称为布尔逻辑(Boolean logic)。

布尔逻辑得名于19世纪的英国数学家乔治·布尔(George Boole)。从那以后,它成为逻辑推理的基础。如果你希望对布尔逻辑展开深入的研究,你需要另外找一本书(研究这样一本书或者就这个问题选修一门课程将都是非常有价值的)。在本节中,我们从基础理论开始,重点关注与计算相关的概念,特别是数字电路的实现。

乔治·布尔(1815——1864)

我们在本书中遇到过几次布尔函数。这里只举几个例子:

·第1章介绍了Java的布尔值数据类型,并立即学会在程序中的if和while语句中使用它来实现决策。

·在第5章中,我们考虑了布尔可满足性问题在计算理论中的关键作用。

·在第6章中,我们看到了布尔函数在对信息进行二进制表示时的实用性。

由于它的重要性,我们在本节中加入了“前文索引”,所以如果你只看了本章,而没有阅读本书的其余部分,也不会有问题,因为涉及的前文中的基本信息并不难理解,你仅阅读本章也不影响你掌握其中的知识。我们之所以选择这种非线性结构,是因为布尔函数和执行计算任务的电路之间存在的密切联系。这是一个基础的概念,我们基于它发展出了今天所用的计算机基础设施。本章希望你重点关注于布尔函数和电路的关系,同时更好地了解布尔对数学的伟大贡献。他完全没有料到他的工作将在两个世纪后作为计算的基础。理解布尔函数和电路的关系等同于理解“电路如何计算”的问题。 ...

Get 计算机科学导论:跨学科方法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.