レイン開発日誌12

知能系と言っても、原理的には、
「入力された数字に、なんらかの数学的処理をして、
 別の数字に変換して出力する」
ということをやっているだけにすぎない。

さて。
今、この知能系をJAVA言語によるプログラムで作ろうとしているが、
プログラム(アルゴリズム)というのは、つまるところ、
以下の4種類の文で、構成されている。

1)代入文
2)四則演算文 (+、−、×、÷)
3)判断文 ( i f 文)
4)繰り返し文 ( w h i l e 文)

実を言えば、これしかない。
もちろん、この他に、ウィンドウを出したりとか、文字を画面に表示するとか、
WindowsなどのOS(オペレーティングシステム)を動かすための
特殊な命令はあるが、単に「数字だけ」を取り扱うのであれば、
本当にこの4種類でしかない。

これは、C言語だろうが、JAVA言語だろうが、みんな同じだ。

天才プログラマーが作ろうと、日曜プログラマーが作ろうと、
業務用プログラムでも、フリーのプログラムでも、
「長い」とか「複雑」とかの違いはあっても、
つまるところは「この4種類の文の羅列」にすぎない。

ちょっとひとつひとつ説明してみよう。

1)代入文

 a = 3
 b = 2

これは、変数a、b(数字をいれる箱だと思えばいい)に、
3とか2とかの具体的な数字を代入することである。

2)演算文 (+、−、×、÷)

 c = a + b 

これは、計算することである。
なお、計算は、+、−、×、÷の4種類しかない。

3)判断文 ( i f 文)

 i f ( c > 4) {
  c = c + 10
}

これは、i f ( )の中の条件式が正しいとき、{ }の中を実行せよ
という記述である。
上の場合、「もし c が4より大きかったら、c に10を加える計算を実行せよ」
ということである。

4)繰返し文 ( w h i l e 文)

 w h i l e ( c < 100 ) {
  c = c + 10
}

これは、w h i l e ( )の中の条件式が正しいとき、{ }の中を繰り返し実行せよ
という記述である。
上の場合、
「c が100より小さい間は、c に10を加える計算を実行しつづけよ」
ということである。

以上だ。

数字を取り扱うプログラムは、全て、この4つの文の集まりである。
そしてプログラムの実行とは、プログラマーが書いた4つの文を
順番に実行しているだけである。

其処に<知能>はあるのかしら?