質問: 100;」と書くところを「int zaiko =-100;」と書いてしまい、それが要因で思わぬ不具合 が起きるなどの、つまり**人間のエラーを防止するためだけの役割ではないのですか?**ということです。 3.「不具合の多くは「フィールドに予期しない値が入る」という形で発現します」 と書かれているのですが、グラフィックソフトや音声編集ソフト等の市販ソフトやロボット制御などのシステム等の**不具合も多くはフィールドに関する不具合**なのでしょうか? よろしくお願いします。
回答: チューリングさんとかノイマンさんという偉い人たちが計算モデルをそのように考えてみんなが「それがいいね」と認めたから・・・という答えが思い浮かびました。 今でこそプログラマーの誰もが当たり前のこととして考えていますが、計算する機械をどうやって作ればいいかということを「データ」に「ある決まったアルゴリズム」を適用して答えとしての「データ」を得るという考え方になったのは上に挙げたような計算機の基礎的な仕組みに貢献した数学者の先生が「そうするのがいいよ」と言って広めてくれたからだと思います。 メソッド=アルゴリズム=計算中は固定です。 フィールドや変数=データ=入力や結果として用いる用いるもの一般で、計算中に刻々と変化します。 ちなみに小学校で我々が学ぶ足し算ですが、ノートの升目に数字を「データ」として書き込み、一の桁からある規則に従って答えの欄に結果の「データ」を書き込んでいき答えを得るということも、計算機が内部で「与えられた数(=データ)に足し算(というアルゴリズム)を適用して結果を得る」のと同じことと捉えることができます。計算機もそういうやりかたと同様の考え方で作られているのは自然なことに感じます(偉い人が仕組みを考えてそれを学んだから後知恵でそういう連想ができるだけかも知れません)。 しかし・・・この説明は質問者さんを満足させるでしょうか?なんとなくそうならない気がします。そんな根源的な質問をするより、実際にプログラムコードを書く経験を積んで自分で実感した方がずっと手っ取り早いような気もしてきます。