[SML 7172] Re: "0 @ 0" について
AOKI Atsushi
aoki @ sra.co.jp
2006年 9月 23日 (土) 09:22:35 JST
青木です。
> > Pointの"x: xInteger y: yInteger"で使われているメッセージ"self basicNew"
> > はどこから継承してきたのでしょうか。
>
> 私が10年くらい前に書いた奴を紹介しておきます。
> ご質問の件は「クラス・メッセージの継承」のあたりの話ですね。
>
> http://www.sra.co.jp/people/kondo/business/VW/library7/2-2/index.html
>
> Smalltalkの階層ブラウザでclassをスイッチさせるというのがポイントですね。
いい文章です。ブラウザの Class / Instance のタックインデック
ス(またはボタン)を押す意味が会得できる文章だと思いますので、
寺内さん!ぜひとも参考にされてくださいまし。
私も大学などで教える際には、下記の資料を使って、9ページ目の
「オブジェクト指向CPU」を援用します。直弟子たちには徹底的
に仕込みます。
http://www.sra.co.jp/people/aoki/OOAOOD/01.pdf
メソッド・サーチが息をするように無意識な行動域へと入っていな
いと、つまり、あなたの頭がオブジェクト指向CPUに成り切って
いないと、クラス階層とメタクラス階層がシームレスにつながらな
いんだよ、ということを説くための資料になります。
仮想マシンを作ったり、ブルーブックを熟読したり、ちゃんとした
師匠に弟子入りしない限り、多くの方々が道を間違えて、ミイラ取
りがミイラになっちゃいますから。
インスタンス/クラス/メタクラス/メタメタクラス/メタメタク
ラス/・・・の隘路(あいろ)に陥ってしまい、なんて分かりづら
いだぁ〜、分別ができないよぉ〜、難しいなぁ〜、と嘆くことにな
ります。実は、そんな分別などを一切必要としないのが Smalltalk
なんです。
Smalltalk は『すべてがオブジェクト』の世界で、全部がインスタ
ンスであり、クラスは存在しない、便宜上、あるインスタンス群を
クラスと呼んだり、メタクラスと呼んでるだけなんだ、ということ
が分かるまでには、長ぁ〜い時間(鍛錬)が必要でしょう。
ちょっとカジっただけだと、Smalltalk をクラスベースのオブジェ
クト指向プログラミング言語と見間違ってしまいます。(昔、そう
いう間違いをした人(学者)たちが多かったなぁ〜。無明を指摘し
ても馬耳東風。縁なき衆生は度し難し、を得心させられました。)
------------------------------------------------------------
R2D2 (AOKI Atsushi) http://www.sra.co.jp/people/aoki/
SML メーリングリストの案内