In "[b-free 608] Re: 仮身名" with Hideaki Suzuki,
(01:50:28 PM -0500 in September 24,1997)
- h1suzuki wrote.
|僕もそう思います。>短すぎの識別子。
「識別子が短すぎて表現したいことが上手くできないから長くなった」という意見に
対しての発言。
|Java は、あれは Alphabet でファイル名をきめてますからねえ。そりゃあ、ファイ
|ル名も長くなります。
|そうだねえ。でも、そのことを考慮しても、50文字もあれば足りるんじゃない?
|統計を取ってないから、全然判らないけど。
それ以前に、実身仮身ネットワークは、ああいった<名前の一過性に依存する>言語
とは相性が悪いんだけど。だって、ああいった言語は、「どこどこの Scope にある
、何々という識別子」と言う形で、実体への Binding を確立するけど、識別子を実
身名にすると、どこでも仮身を張り込むことで「この識別子」と指定できてしまって
あんまり Overload や Override の意味がなくなってきてしまう。Capselation とし
て「その関数名へのアクセスはここからは出来ない」なんて言っても、仮身を直接貼
り込まれた日にゃあ、それが使えるかどうかどう判断したらいいか。
これはすなわち、「実身名を関数名などに使うな」という教訓で、関数の実装を独立
させ、その「実装実身」とでも呼ぶ実身に関数名を(適切なスコープの元で)結合し
て、使用に当たっては結合した名前の方を使うという方法を採ることになる。
すると、実身名の意味という物もだいぶ変わってくることになるだろうね。
1 関数そのものを意味する名前になるだろう。
2 いろいろな関数名に結合される可能性がある名前である。
3 よって、付加的な情報、仮の情報(開発コードのように)となる可能性がある
。
まあ、何を付けても良いんだけど。
|そう言えば、引数の情報は、仮身名にすべきでしょうか? 実身名にすべきでしょ
う
|か?
|ここでは、引数の宣言自体は実身の中にあるとして、見出し的に仮身に表示するよ
う
|な引数情報のことを言っています。
|引数の情報も実身名の中に入れてしまうと言うなら、32文字じゃあはなはだ足り
な
|いでしょうね。でも、実身名は識別子だけにして、仮身名の方で引数の情報を表示
す
|るなら、やっぱり32文字で十分。
|
|要は、引数形式を(ファイル内にもつ以外に)常に実身名として表示する必要があ
る
|か、時には Method の名前で十分な場合があるから、仮身(引用方法)に依存して
引
|数形式を追加情報的に扱うか、という違いですね。まあ、Overload とかありますか
|ら、その辺は意見の分かれるところかな。
|何でも実身名に詰め込んでいく方向性か、どんどん実身名を単純化(単一化)して
い
|く方向性か。
と言うことで、実身名自体を関数名やクラス名から引き離す方向に行った場合、又、
話は変わってくるみたいです。一時期、C++ を実身仮身ネットワークに載せることを
考えていた無責任男(< ひまを探してる)としては、
実身名 == <名前空間>名
という結論に達しましたが。
それでも、上手く名前の一過性による利点を生かすには、結構プログラムが読みにく
くなる気がしています。
第一、考えても見てください。
ファイルシステムが根本から違うのだから、旧式のファイルシステムの上に乗る言語
では、新しい土地では色々、無様に見えてしまうのです。
# ホントは、Prolog とか載せたら、すごい良いのだろうなあと思っていますが、
# これも、議論の余地がかなりあるみたいです。
# でも、TACL とかは Prolog 的になったらすごく面白いことになりそうだと
# 思いません? <わくわく
# 今はすっかり廃れてしまった、Prolog の Fan がここに一人。
- Aki.
p.s.
B-free に Prolog のらないかなぁ(ひそ)
それはおまえの仕事だなんじゃん>自分 ^^;;; (ひそひそ)
p.s.2.
BTRON は10年先行くコンピュータ OS なんだぜ。>友
でも、3D の重い App とかどう扱うのさ。16M RAMで。<友
うう。やっぱ、B-free しかない!<自分
--------------------------------------------------------------
Hideaki Suzuki (SO in Bridgewater State College)
e-mail H1Suzuki@Bridgew.edu
Home Page http://www.yashi.com/h1suzuki (Under Constr.)
Nifty-Serve KGH06253