< previous page page_199 next page >

Page 199
(text box continued from Previous page)
all things that are not plants. We can simplify the expression by using -P to mean not plants. (0-P is simply 0 because we can't remove elements from the empty set.) The subtraction operator in Boole's system corresponds to the ! (NOT) operator in C++. In a C++ program, we might set the value of the Boolean variable plant to TRUE when the name of a plant is entered, and !plant is TRUE when the name of anything else is input.
The expression 0+P is the same as P. However, 0+P+F, where F is the set of all foods, is the set of all things that are either plants or foods. So the addition operator in Boole's algebra is the same as the C++ || (OR) operator.
The analogy can be carried to multiplication: 0×P is 0, and 1×P is P. But what is P×F? It is the set of things that are both plants and foods. In Boole's system, the multiplication operator is the same as the && (AND) operator.
In 1854, Boole published An Investigation of the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic and Probabilities. In the book, he described theorems built on his axioms of logic and extended the algebra to show how probabilities could be computed in a logical system. Five years later, Boole published Treatise on Differential Equations, then Treatise on the Calculus of Finite Differences. The latter is one of the cornerstones of numerical analysis, which deals with the accuracy of computations. (In Chapter 10, you'll see the important role numerical analysis plays in computer programming.)
Boole received little recognition and few honors for his work. Given the importance of Boolean algebra in modern technology, it is hard to believe that his system of logic was not taken seriously until the early twentieth century. George Boole was truly one of the founders of computer science.

0199-01.gif

 
< previous page page_199 next page >