« Firefox 3 @Vista64 | トップページ | MarsPhoenix@twitter »

2008年6月19日 (木)

手続き指向 と オブジェクト指向

Rくんの blog にコメント付けてから、 つらつら考えた。
# R氏、 Rさん と書くべきなんだけど。 ゆうきまさみファンとしては、 「Rくん」 以外は書きにくい f(^^;

構造化されたプログラム ( structured program --- 通常、 構造化プログラム と訳される ) って、 手続きを志向したプログラム ( procedure oriented program --- 通常、 手続き指向プログラム と訳される ) の一種だよなぁ、 と。
ただし、 その手続きは 「構造化されたプログラムの一般的な原理・原則」 ( structured program theorem --- 通常、 構造化定理 と訳される ) に則っていること、 という制限が付いてるけど。

だけど、 手続き ( procedure ) とプログラムって、 どう違うんだっけ…?

…で、 ようやく気が付いた。
構造化プログラミングでは、  プログラム = 手続き だし。
OOP では、 プログラム = オブジェクト じゃん。

・ 「手続きを志向したプログラム」 を考えるに、 プログラム自体も手続き ( procedure ) であると見ます。
・ この手続きは、 他によって開始され、 決められた処理を行い、 また他の手続きを開始させ、 そして自身の判断により終了します。
・ 手続きは、 ( より小さな、 複数の ) 手続きから成っています。
※ 手続き ( procedure ) は、 現実の手続きや業務フローと似ていることがあるかもしれませんが、 本質的には別物です。

比べると、 モノを志向したプログラム ( object oriented program --- 通常、 オブジェクト指向プログラム と訳される ) は。

・ 「モノを志向したプログラム」 を考えるに、 プログラム自体もモノ ( object ) であると見ます。
・ このモノは、 他によって生成され、 他からの刺激に反応し、 また他のモノを生成し刺激し、 そして他からの刺激または自身の判断により消滅します。
・ モノは、 ( より小さな、 複数の ) モノから成っています。
※ モノ ( object ) は、 現実の物や人と似ていることがあるかもしれませんが、 本質的には別物です。


で、 けっきょく、 どちらもその道具立てとかを覚えるのは、 じつはたいしたことじゃなくて。 「○○は、 ( より小さな、 複数の ) ○○から成っています」 というのが、 難しい。 つまり、 プログラムの中をどういうふうに分割していけばよいのか、 というところがどちらも難しい。

# そこって… アーキテクチャ設計なんでは? 「○○指向プログラミング」 って言うくせに、 そのキモはプログラミング技法じゃなくてアーキテクチャ設計論だなんて、 詐欺だよな~ f(^^;

|

« Firefox 3 @Vista64 | トップページ | MarsPhoenix@twitter »

プログラミング」カテゴリの記事

-プログラミング ( わんくま )」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 手続き指向 と オブジェクト指向:

« Firefox 3 @Vista64 | トップページ | MarsPhoenix@twitter »