2008-10-22

A machine which execute a procedure: SUCC mark I

Japanese version

Blaise Pascal made a calculator for helping his father's job (tax calculation). Usually it is painful to calculate a huge amount of accounting. I am not good at calculation. So, I thought if I have a computer, I do not need to compute anything myself. That's one of the motivation I took a computer science course in my University. Some people totally misunderstand that a computer scientist is good at arithmetic. No. If someone is good at arithmetic, why does she/he need to learn that? If a human can fly faster than sound, maybe we do not need to use a plane. If people can communicate without speaking between thousand kilometers away, why we need a telephone? I can not do arithmetic, therefore I learned computer science. So, let's make a computer.

Figure 4 is a computer SUCC mark 1 by Sirius Cybernetics corp. This computer gets one Church number as an input, and outputs another Church number. This computer does not understand what the number is, but just execute one procedure (it will be shown up soon). It is a kind of vending machine. As a vending machine can calculate changes, this SUCC mark I also can compute something.

SUCC mark I runs computation as the following.

1. Figure 5. Initial state. Given an input Church number on the 'input' board. Here, Church number 0 (Zero) is the input as an example. (Do you remember that the Church number 0 is one circle and one square?)

2. Figure 6. The input is copied on the output. SUCC mark I scan the input and choose the same tile from left to right.

3. Figure 7. The calculation result. After the copy, SUCC mark 1 puts one more square tile at the end of the output.

As you see, when we input the Church number 0, then the machine outputs Church number 1. The same procedure can generate 2 from 1, 3 from 2, and so forth. Finally, we have a computer! and please shut up, Marvin.

Marvin: ....

It seems ridiculously simple, but this is the basic of our computer. By the way, SUCC represents Successor. This is a successor number generator. As we have already seen, this function and Zero generates all natural numbers. We could add more procedures. Next time we will see a little bit more complex computation.