PukiWikiスレ Part2

このエントリーをはてなブックマークに追加
45nobodyさん
henohenoという人間に興味がわいてちょと彼のサイトを見てたんだが、スレ違いって話は置いといてw、
http://osdev-j.sourceforge.jp/index?%5B%5B%BD%E3%BF%E8%A5%AA%A5%D6%A5%B8%A5%A7%A5%AF%A5%C8%BB%D8%B8%FE%5D%5D
純粋オブジェクト指向
オブジェクトへのメッセージ送出のみで世界を構築しようというプログラミングパラダイム。
たとえば、Smalltalkで「 2 + 1 」とは、「2」という(状態を保持する整数クラスの)インスタンスの「+」というメソッド?
に向けて、「1」という(状態を保持する整数クラスの)インスタンスを送出する、と解釈する*1。
{ 2 1 add } で 2 と 1 を add というオペレータで処理させる、といったプログラミングと対比せよ。
純粋オブジェクト指向ではオブジェクト自身が処理主体でもある。
--------------------------------------------------------------------------------
*1 ちなみに結果は、2というデータを保持していた整数クラスのインスタンスの状態が3に変わる

-------------------------------------

なんかこの理解、変じゃないか?
「2」というオブジェクトが「+1」というメッセージを受けて〜まではいいが、
そこからがおかしい。「受けて〜「3」というインスタンスを新たに生成する」が正しい。

演算がさらに続けば「3」というインスタンスがまた何らかのメッセージを受ける。
そうやって中間的に生成されたインスタンスはガーベージコレクションでいずれ消滅する。
(実際の実装はともかく)smalltallkの考え方はこうなはず。何かのインスタンスが2から3に変わるわけではない。