2014年3月24日月曜日

人で無しのための計算機理論入門 その7 プログラムの基礎 その1

 勝手ながら、国際情勢に気を使いながらのこの記事の作成ですが、明日から春休みということもあり、にこにこしながら大きな荷物を抱えて戻ってきている子供たちも見るという状況。というわけで、核安全保障サミットもある一方、糊口を凌ぐためのお仕事にも精を出さないといけない状況になっていまして、昨日に続き一本記事を上げたいと思っています。

この記事からしばらくプログラムについての基本的なお話をしたいと思います。例によってハードウエアに一番近い部分から、プロセスという概念がどうして必要になったかというところまでお話ししていく予定です。

まず、プログラムをするのに必要な最小限度の要素を考えてみることにしましょう。

実は処理の流れを図式化したものに、フローチャート(流れ図)と呼ばれるもので、日本工業規格(JIS規格)でもきちんと定義されていたりもします(JISX0121)。これは、たとえば、ISO( 国際標準化機構 )の品質マネージメント規格にISO9000シリーズというのがありますが、そこでそろえる書類の手順書などにも用いられたりして、汎用性が高いので覚えておいても損はないと思います。

ここでは、あまり細かいことまでは言わず、まずはごく基本的な次の5つだけ説明しておきましょう。






以上の五つとなります。これに時には矢印を加えて、処理の流れを表わすのですが、だいたい、上から下へ処理の順序を書いていくのがふつうです。

ここで、「その2」のCPUに必要な機能で説明していなかった分岐というものが出てきました。この部分について説明して、今回の記事は終わりたいと思います。

CPU何らかの計算をすると、計算の結果に応じてフラグというものを立てます。ゲームなんかをやっている人は、あるイベントをクリアするとフラグが立って次のステージに進める、などと使ったりしてませんか。あのフラグと同様です。

ただし、CPUが計算の結果立てるフラグは基本的には次の二通り。

0(ゼロ)フラグ:計算の結果が0の時に1、そうでないときは0
マイナスフラグ: 計算の結果が負の時に1、そうでないときは0

この他に、割り込みの信号が検出されたときに1となる、割り込みフラグというものもあります。

CPUはこのフラグの状態をみて分岐をします。

たとえば、ある二つの変数の内容が等しいかどうかが必要なときは、引き算をしてゼロフラグが0か1かという結果を見て分岐の処理します。

また、同様に大きい、小さいの比較は引き算をした結果、マイナスフラグが立っている(=1)か立っていないか(=0)ということで分岐を判断します。

このように、ごく単純なことに、我々の作業は分解されて計算機では処理されていくことを少しご理解いただいておくと、計算機に対する見方もまた違ったものになるのではないでしょうか。


0 件のコメント:

コメントを投稿