[SML 7548] Re: 第7回Smalltalk勉強会@京都
toshihiko ichida
dogatana @ gaia.eonet.ne.jp
2009年 5月 16日 (土) 10:11:07 JST
いちだです。
AOKI Atsushi さんは書きました:
> 今日は、私的変数・共有変数・特殊変数と進んで、メッセージに入
> ることができました。ところがですね、喧喧諤諤の状態、諸子百家
> の光景を呈し、かなり疲れましたぁ〜。
いつも楽しく参加させてもらっています。
> 最内スコープ束縛方式を暗黙とした Smalltalk プログラミングに
> おいて、次の術語を明解にしておく必要があるのだろうと思います。
勉強会で XML.Text と Core.Text の2つのTexクラスという「名前」
の解決について質問させていただきました。
そのときにも最内スコープであるとの回答をいただいたと思うので
す、クラス名については、どうもスコープの階層が無いように感じ
ておりまだモヤモヤ感が残ってます。
例えば Jun3Dimage というクラスの定義の冒頭には
Smalltalk.Jun defineClass: #Jun3dImage
superclass: #{Jun.JunAbstractObject}
とあり、名前空間としては Smalltalk.Jun に所属していますが、
インスタンスを作成するときには
aImage := Smalltalk.Jun.3dImage new
としなくても
aImage := 3dImage new
とするだけでも 3dImage という名前のクラスのインスタンスを生
成できます。SmalltalkはデフォルトとしてもJunが省略できてし
まうのは何故だろうという疑問です。
これから、同一クラス名となったときの曖昧さを解消するために、
名前空間で擬似的に階層を扱えるが、作成したクラスは全て同じス
コープにあるという理解をしたのですが、正しいでしょうか?
あるいはスコープ階層は、クラス内でクラスを定義したときに出
てくるものなのだろうかと想像したりします。
(Smalltalkでできるのかどうか知らないのですが)
--
いちだ
SML メーリングリストの案内