[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 23:17 / Filesize : 368 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プロトタイプベース・オブジェクト指向



1 名前:デフォルトの名無しさん [03/12/08 21:30]
オブジェクトを複製または継承によって生成を行う言語,
プロトタイプベース・オブジェクト指向言語について語りましょうよ.

関連リンク >>2


856 名前:デフォルトの名無しさん mailto:sage [05/01/23 17:09:42 ]
>Javaの無名クラスはあくまでクラスでしょ。

んー、それはJavaがクラスベースな言語なんだから当然の話であって、
こういう書き方ができるかどうかって事と、
クラスベースかインタスタンスベースかって事は直交した問題なんじゃ?

857 名前:818 [05/01/23 19:08:46 ]
>>841>>854-856
>例えば、 
>cat = object { 
>mew(times) { self.make_sound("mew") } 
>walk(direction, distance) { self.dir = direction. self.move(distance) } 
>... 
>} 
>みたいな話ができてやっと「インスタンスベース」と言えるんじゃないか、って話な。

実は、やっとココで >>818 の話に繋がるんです
仮に cat に代入されるオブジェクトが『実行時、今まさに作られるのならば』インスタンスベース
しかし、オブジェクトを生成する為の“メタオブジェクト”と呼べるものが『既に作られていたのならば』クラスベース
では無いかと思ったわけで

858 名前:デフォルトの名無しさん mailto:sage [05/01/23 19:09:17 ]
すまん age ちまった許して……っていうか石投げないで……

859 名前:823 mailto:sage [05/01/23 19:12:17 ]
>>856
> >Javaの無名クラスはあくまでクラスでしょ。
>
> んー、それはJavaがクラスベースな言語なんだから当然の話であって、

でしょ。
だったら、インスタンスベース言語ならそういう表現ができて当然なんじゃない?


860 名前:デフォルトの名無しさん mailto:sage [05/01/23 19:14:31 ]
>>859
少なくとも Io でそういう表現は出来なかったと思う

861 名前:823 mailto:sage [05/01/23 19:15:42 ]
>>857
> 実は、やっとココで >>818 の話に繋がるんです
> 仮に cat に代入されるオブジェクトが『実行時、今まさに作られるのならば』インスタンスベース

実行時に生成されるかコンパイル時に定数として生成されるかで振舞いが変わるかな?
いずれにせよ、そのオブジェクトの動作はリテラルとして記述された通りなわけで。


862 名前:823 mailto:sage [05/01/23 19:17:03 ]
>>860
> 少なくとも Io でそういう表現は出来なかったと思う

まあそういう例もあるだろうね。
その場合はプロトタイプを使ってオブジェクトを生成するしかないから、
インスタンスベースとプロトタイプベースを区別したほうがいいのかも。

863 名前:818 mailto:sage [05/01/23 19:23:05 ]
>>861
>実行時に生成されるかコンパイル時に定数として生成されるかで振舞いが変わるかな? 
あ、↑みたいに言った方が良かったかも ^-^;

件のコードは、
「object まで到達した時点でオブジェクトが作成され、次いで mew と walk が接続され、そして cat に代入される」
……なら、実行時に作ったということでインスタンスベース
「object まで到達した時点で、既に完成されたオブジェクトが生成され cat に代入される」
……なら、クラスベース
ということで

864 名前:デフォルトの名無しさん mailto:sage [05/01/23 19:36:40 ]
>>862
おいおい。自説大事に生粋のインスタンスベースを例外扱いかよ。
真性だな。



865 名前:デフォルトの名無しさん mailto:sage [05/01/23 19:40:28 ]
>>862
プロトタイプベースとインスタンスベースとオブジェクトベースは
同じものの別の呼び名です。念のため。

866 名前:818 mailto:sage [05/01/23 19:44:09 ]
そういえば俺が見た本の中には
『プロトタイプベース』『クラスベース』『オブジェクト指向』がそれぞれ違う概念として紹介されて棚w

クラスが無ければプロトタイプベース、
継承しなければクラスベース、
継承してればオブジェクト指向

ってな感じに。俺は違和感あった

867 名前:デフォルトの名無しさん mailto:sage [05/01/23 19:49:30 ]
無名だろうとクラスにメソッドを定義しないといけないのならクラスベースだよ。
シンタックスの妙でインスタンスベースっぽさを名乗るのは勝手だが。
インスタンス特異と見せかけて特異クラスを使うRubyの特異メソッドもしかり。

868 名前:デフォルトの名無しさん mailto:sage [05/01/23 20:03:36 ]
>>867
んじゃこれどう見る?

class Hoge begin
    proc void Fuga begin
        〜
    end;
end;

これがインスタンスベースだって言ったら怒る?
この場合はルートのオブジェクトに対して class メッセージを送ってみたんだが
すると、Hoge という名のクラス (1st class object) が生成される、という仕組み

869 名前:デフォルトの名無しさん mailto:sage [05/01/23 20:05:32 ]
>>866
まあとにかく、経験則のみで既存概念の再定義をやたら試みようとするのが
オブジェクト指向界隈の悪しき慣習だから、オリジナルペーパーや出典を明らか
にしない解説の類は眉唾で読まないとね。自分が紹介したり解説している考え方
の出所すらしらずに文章を書いて(カネまでもらってw)いるヤツのなんと多いことか。

870 名前:デフォルトの名無しさん mailto:sage [05/01/23 20:10:44 ]
>>869
>自分が紹介したり解説している考え方の出所すらしらずに
>文章を書いて(カネまでもらってw)いるヤツのなんと多いことか。

だって、全部自分の「再発明」なんだもん・・・


871 名前:デフォルトの名無しさん mailto:sage [05/01/23 20:15:25 ]
>>868
classメソッドはどこに定義されているの?

872 名前:デフォルトの名無しさん mailto:sage [05/01/23 20:18:52 ]
>>871
ルートオブジェクト

ちなみに、ルートオブジェクトはこの言語の世界が生まれたときには既に存在していました
つまり神に相当するオブジェクトです

……ま、でっちあげの脳内言語だけどな

873 名前:868 mailto:sage [05/01/23 20:22:14 ]
肝心なのは、クラスとインスタンスの間に越えられない壁が有るという事……なのか?
この当たりはよく分からん

874 名前:デフォルトの名無しさん mailto:sage [05/01/23 20:26:53 ]
>>872
じゃあインスタンスベースでいいけど、脳内じゃな… w

そもそもHogeとかFugaとか関係ないし。わけわかめ。



875 名前:デフォルトの名無しさん mailto:sage [05/01/23 20:45:18 ]
>>874
うん。脳内。

だけど、基盤は出来てるから class メソッドをちゃんと組み込めばいいだけ。
面倒だからやりたくないけど。

876 名前:デフォルトの名無しさん mailto:sage [05/01/23 21:46:04 ]
面倒なのがクラスベース
お気軽なのがプロトタイプベース
適当なのがインスタンスベース

877 名前:デフォルトの名無しさん mailto:sage [05/01/23 21:49:59 ]
クラスベース⇔オブジェクトベースだと思ってたけど。

878 名前:デフォルトの名無しさん mailto:sage [05/01/23 22:16:50 ]
>>859
>> んー、それはJavaがクラスベースな言語なんだから当然の話であって、
>でしょ。
>だったら、インスタンスベース言語ならそういう表現ができて当然なんじゃない?

「でしょ」じゃなくってさあ。
クラスベースの言語でも、無名クラスのような表現ができるのとできないのとがあるように、
インスタンスベースの言語でも、こういう表現ができるのとできないのがあっていい。
だから、この表記ができるかどうかの問題と、その言語がインスタンスベースであるか
どうかの問題は、直交している、って言ってるの。

879 名前:デフォルトの名無しさん mailto:sage [05/01/23 22:19:10 ]
>>878
『直交』という表現よりも『ニアミス』というか『次元がズレている』っていう表現の方がよくないか?

まぁ、書き方は幾らでも考え付くんだ
そのなかで『プロトタイプベースって一体何?』って話だよな?

880 名前:デフォルトの名無しさん mailto:sage [05/01/23 23:33:57 ]
>>877
だから対立した考え方じゃないんだってば。クラスベースで、インスタンスが自前の
メソッドや属性を自由にできない…という制約をといたのが、インスタンスベースだ。

881 名前:デフォルトの名無しさん mailto:sage [05/01/23 23:41:50 ]
>>876
くどいようですが、インススタンスベースとプロトタイプベースは同じものです。
プロトタイプベースというと、プロトタイプの複製でオブジェクトを生じさせること
やプロトタイプチェーンによる委譲といった、特徴だけど、本質ではないところ
のみ取りあげて、やたらクラスベースと対比させたがる人が多いので困ります。

882 名前:デフォルトの名無しさん mailto:sage [05/01/23 23:45:35 ]
>>881
『複製でオブジェクトを生じさせる』 を 『クラスに因らないオブジェクト生成』 だと解釈すれば本質だと思うけど

883 名前:デフォルトの名無しさん mailto:sage [05/01/24 00:04:49 ]
それぞれ視点が違うだけなのに困られても・・・。

884 名前:デフォルトの名無しさん mailto:sage [05/01/24 00:36:32 ]
>>882
いや。それが本質じゃないだってば…。orz



885 名前:デフォルトの名無しさん mailto:sage [05/01/24 00:44:58 ]
>>883
プロトタイプの語感からくる間違った認識で議論されるのは困ると思う。
だからインスタンスベースかオブジェクトベースと呼ぼう!
A Theory of Object でもオブジェクトベースって言っているしね。

tinyurl.com/3tnke

886 名前:823 mailto:sage [05/01/24 12:07:41 ]
>>863
> 「object まで到達した時点で、既に完成されたオブジェクトが生成され cat に代入される」
> ……なら、クラスベース

クラスは存在せず、プロトタイプからコピーする場合でも、クラスベースと呼ぶ?


887 名前:823 mailto:sage [05/01/24 12:09:08 ]
>>865
はい。それ承知の上で、あえて区別分類してみようかと。
というのも、インスタンスベースだからといってプロトタイプという概念が
必然かどうかはまだ議論の余地があると思っています。


888 名前:823 mailto:sage [05/01/24 12:12:16 ]
>>868
> これがインスタンスベースだって言ったら怒る?
> この場合はルートのオブジェクトに対して class メッセージを送ってみたんだが
> すると、Hoge という名のクラス (1st class object) が生成される、という仕組み

クラスが存在する時点でクラスベースとおもわれ・・・

というか、それがインスタンスベースだと言うのならSmalltalkはインスタンスベース?

889 名前:823 mailto:sage [05/01/24 12:14:10 ]
>>878
> クラスベースの言語でも、無名クラスのような表現ができるのとできないのとがあるように、
> インスタンスベースの言語でも、こういう表現ができるのとできないのがあっていい。

もちろん、一般的な定義としてのインスタンスベースならば、その通り。

今議論しているのは、言語表現としてインスタンスベースあるいは
プロトタイプベースを定義するのならば、どういう基準になるのだろうか
という話。

890 名前:823 mailto:sage [05/01/24 12:15:31 ]
>>880
じゃ、rubyはインスタンスベース?
Smalltalkにもいくつかインスタンス毎にメソッド定義できる環境があったけど、
そういうのもインスタンスベース?

891 名前:デフォルトの名無しさん mailto:sage [05/01/24 12:26:13 ]
>>890
Rubyの特異メソッドはインスタンスに定義しているようにみせて、
実は特異クラスという見えない無名クラスに定義しています。
したがって、セマンティックス的にはクラスベースです。
シンタックス的にはインスタンスベースっぽいと言っても構わないでしょう。

Smalltalkの例もしかりです。とにかく、実質クラスにメソッドを定義
しなければならなければクラスベースです。

892 名前:デフォルトの名無しさん mailto:sage [05/01/24 12:49:09 ]
rubyだとクラスってオブジェクトの1種じゃなかったっけ

893 名前:デフォルトの名無しさん mailto:sage [05/01/24 13:01:00 ]
>>892
RubyもSmalltalkもクラスはまた別のクラスのインスタンスです。
Rubyは特異メソッドでクラスメソッドを“持っている”ように見えますが
これも特異クラスの暗黙の介在が必要です。したがって、こうしたクラスも
それ自体が自身で起動できるメソッドを持てているわけではないのです。

894 名前:823 mailto:sage [05/01/24 13:25:32 ]
>>891
> Smalltalkの例もしかりです。とにかく、実質クラスにメソッドを定義
> しなければならなければクラスベースです。

いや、Smalltalkの例の場合には、インスタンスにスクリプトをつけられる環境で、
それは無名クラスではなく、インスタンスがスクリプトのメソッド辞書を持っていた。

また、pythonの場合には特異クラスではなく、これまたオブジェクトのスロットに
直接バインドできる。

rubyはよく知らん。



895 名前:デフォルトの名無しさん mailto:sage [05/01/24 15:34:14 ]
>>894
インスタンスにメソッドをバインドできても、それを起動するための
しくみをクラスに仕込まなければならないならば、結局は同じことです。
繰り返しになりますが、そうした機構をもってインスタンスベース的と
宣伝するぶんには差し支えないと思います。

Pythonにはインスタンスベースの素養が十分あると言って良いと思います。

896 名前:823 mailto:sage [05/01/24 15:47:59 ]
>>895
> インスタンスにメソッドをバインドできても、それを起動するための
> しくみをクラスに仕込まなければならないならば、結局は同じことです。

いや、スクリプトを書く側にとっては、クラスに一切の変更を加えることなく
新しいメソッドを追加できた。


897 名前:デフォルトの名無しさん mailto:sage [05/01/24 16:39:29 ]
>>896
ですから、くどいようだけどそれはRubyの特異メソッドと同じこと。
ユーザーは特異メソッドを使うにあたって特異クラスを意識する
必要は必ずしもないわけだから。ユーザーがクラスの介在を意識しないで
済んでしまうような計らいがあるとき、それはインスタンスベースだと
言い切るのなら、それはそれで構わないと思う。ただ、無用な議論を避ける
ために、但し書きは必要でしょうけど。

「自分はシンタックスにおいてインスタンスベースなら、それの言語・
処理系はインスタンスベースだと解釈する立場だ」…とかね。

898 名前:823 mailto:sage [05/01/24 16:45:36 ]
>>897
> 「自分はシンタックスにおいてインスタンスベースなら、それの言語・
> 処理系はインスタンスベースだと解釈する立場だ」…とかね。

いや、俺の立場がどうこうという問題じゃなくて、
今議論しているのは言語表現上(syntaxだけではなく、constructsの問題)で
クラスベースとインスタンスベース(あるいはプロトタイプベース)を区別する
基準はできないだろうか、という話なんだが。

できれば>>822あたりからの流れを読んでもらえると助かる。

899 名前:デフォルトの名無しさん mailto:sage [05/01/24 17:26:08 ]
結局、
 クラスを用いてオブジェクト生成に重みを置くなら「クラスベース」
 クラスを用いないオブジェクト生成に重みを置くなら「インスタンスベース」
で良いんじゃない?

クラスからのオブジェクト生成後の変更可能性は生成になんら関わらないし、
インスタンスベースが“クラス”オブジェクトを持っていてはいけないという規定も無いし。

自称・他称が違うこともあるだろうが仕様が無い。

900 名前:デフォルトの名無しさん mailto:sage [05/01/24 20:18:54 ]
んで、インスタンスベースのうち、プロトタイプチェーンを持っているのが
「プロトタイプベース」?
プロトタイプへの参照を持たず、いっそcloneもできないインスタンスベースの
言語って考えられないわけじゃないよね。現実にあるかどうかは知らんけど。


901 名前:デフォルトの名無しさん mailto:sage [05/01/24 21:46:36 ]
C言語でオブジェクト指向するかの様に、
インスタンスベースやプロトタイプベースでクラス指向する、
って言い方もできるわけだよな。
構文糖衣の差や、クラスの探索等を組み込みでやるか、
自力でやるか程度の違い。
どこで線引きするかなんて個人の解釈でしかない。
この議論は無意味だ。

902 名前:1 mailto:sage [05/01/24 22:07:56 ]
>>901
あなたにとって無意味かもしれないけど少なくとも私にとっては無意味じゃありませんね。
「プロトタイプベース」「インスタンスベース」についてはこのスレを見てもわかるように
言葉の定義がまだはっきりしていません。
(誰かが定義したしないという話ではなく広く一般に知れ渡った定義がはっきりしていないということ)
それを手探りで徐々に輪郭を作っていく議論は有益だと思いますよ。
ちょっと発散気味かもしれませんけど。


903 名前:デフォルトの名無しさん mailto:sage [05/01/24 22:36:01 ]
なんでプロトタイプベース言語作った作者に聞かないんだろう・・

904 名前:デフォルトの名無しさん mailto:sage [05/01/24 22:38:50 ]
>>902
いや、901が言いたいのは、823が言う言語表現なんてどうとでもなる
から、そこでの線引きについて議論することは無意味だってことだろ?



905 名前:1 mailto:sage [05/01/24 22:51:04 ]
ちょっとまとめてみました。

815 「クラスの有無」
オブジェクトがクラスに委譲せずに起動可能なメソッドを持てるかどうか
メッセージ送信の実行機構による分類(852)
クラスベースで、インスタンスが自前の
メソッドや属性を自由にできない…という制約をといたのが、インスタンスベース(880)
とにかく、実質クラスにメソッドを定義しなければならなければクラスベース(891)
クラスもそれ自体が自身で起動できるメソッドを持てているわけではないのです(892)
インスタンスにメソッドをバインドできても、それを起動するための
しくみをクラスに仕込まなければならないならば、結局は同じことです(895)
クラスが存在する時点でクラスベースとおもわれ(888)

818 「実行時にオブジェクトが定義されるか」
実行前にオブジェクトの挙動が決定されるかどうか
クラスをコードとして記述できるかどうかの意味(820)
「記述できるインスタンス」と「記述できないクラス」は存在しない(833)
『実行時、今まさに作られるのならば』インスタンスベース
オブジェクトを生成する為の“メタオブジェクト”と呼べるものが
『既に作られていたのならば』クラスベース (857)


906 名前:2 mailto:sage [05/01/24 22:51:34 ]
822 「ソース上のプリミティブな要素」
ソース上のプリミティブな要素がクラスなのかインスタンスなのか
実行機構および言語機能による分類ではなく、言語表現による分類(823)

827 「オブジェクトのリテラル表記の可否」
任意のオブジェクトを1つのリテラル表現として記述できるかどうか
言語表現による分類(852)
Javaの無名クラスはあくまでクラス
それをインスタンスに対してできてこそのインスタンスベース(856)
実行時に生成されるかコンパイル時に定数として生成されるかで振舞いが変わるかな?(861)
無名だろうとクラスにメソッドを定義しないといけないのならクラスベース(867)
ユーザーがクラスの介在を意識しないで済んでしまうような計らいがあるとき、
それはインスタンスベースだと言い切るのなら、それはそれで構わないと思う。
ただ、無用な議論を避ける ために、但し書きは必要(897)

899 「直交するものではないので重みづけで判断」
クラスを用いてオブジェクト生成に重みを置くなら「クラスベース」
クラスを用いないオブジェクト生成に重みを置くなら「インスタンスベース」
クラスからのオブジェクト生成後の変更可能性は生成になんら関わらないし、
インスタンスベースが“クラス”オブジェクトを持っていてはいけないという規定も無いし。


907 名前:3 mailto:sage [05/01/24 22:52:11 ]
862(827派生) 「インスタンスベース≠プロトタイプベース」
インスタンスベースとプロトタイプベースを区別したほうがいいのかも
インスタンスベースだからといってプロトタイプという概念が必然かどうか(887)
インスタンスベースのうち、プロトタイプチェーンを持っているのが 「プロトタイプベース」?(900)

865 「インスタンスベース=プロトタイプベース」
プロトタイプベースとインスタンスベースとオブジェクトベースは同じものの別の呼び名です
自説大事に生粋のインスタンスベースを例外扱いかよ。 (864)
クラスベースの言語でも、無名クラスのような表現ができるのとできないのとがあるように、
インスタンスベースの言語でも、こういう表現ができるのとできないのがあっていい。 (878)
プロトタイプベースというと、プロトタイプの複製でオブジェクトを生じさせること
やプロトタイプチェーンによる委譲といった、特徴だけど、本質ではないところ
のみ取りあげて、やたらクラスベースと対比させたがる人が多いので困ります。 (881)

885(865派生) 「プロトタイプベースと呼ぶのはやめよう」
プロトタイプの語感からくる間違った認識で議論されるのは困ると思う。
だからインスタンスベースかオブジェクトベースと呼ぼう!


908 名前:デフォルトの名無しさん mailto:sage [05/01/24 22:53:48 ]
>>903
えーと。そのプロトタイプベースの言語を最初に作った当人が、クラスベースのアンチを
意識して、本質じゃないところを強調しちゃったもんだから、ややこしいことになっている
わけ。で、あとで客観的に分析して本質を突いてくれた本もあるんだけど、これが洋書で
高いから、誰も読んでないとくる。当然、インスタンスベースとかオブジェクトベースっても
通じやしないし、再三プロトタイプベースの別の呼び名だと言っているそばから、俺定義
をはじめるバカもいるってな始末でどーしようもない状態なのよ。

909 名前:デフォルトの名無しさん mailto:sage [05/01/24 23:00:48 ]
日本の、こんなスレの片隅で再定義してどうすんだよ

910 名前:1 mailto:sage [05/01/24 23:11:24 ]
>>909
まぁそれもそうだけど、ここに書き込んでいる人は私含めて権威ある定義を知らないので
話が噛み合わなかったりしてはっきりさせたいってのがあるのではないかと。

>>908
その本読んでいるのだったら何が本質と書かれていたか教えて欲しいです。

>>904
901の「この議論」が指しているものが何かレスからは厳密に読み取れないのでなんとも・・・
823定義が独走しちゃっている感は確かにありますけどね。

911 名前:1 mailto:sage [05/01/24 23:16:03 ]
オフトピですが次スレのスレタイはどうしましょうか。

・プロトタイプベース
・インスタンスベース
・オブジェクトベース


912 名前:デフォルトの名無しさん mailto:sage [05/01/25 00:55:19 ]
「インスタンスベース」
だけは、言葉に対するセンスが無いと思う。

913 名前:デフォルトの名無しさん mailto:sage [05/01/25 01:34:30 ]
>>912
なぜ?
プロトタイプベースは限定的なイメージを持たせがちだし、
オブジェクトベースはオブジェクト指向と混同しがち。
インスタンスベースなら、クラスとの背反という間違った発想を払拭してくれる
語感と併せて、よい落としどころだ思うけど。

けれど、プロトタイプベースで探してくる人が多いと思うから、今と同じ
プロトタイプベース・オブジェクト指向 2でいいんでないの? >>1に但し書き入れて。

914 名前:デフォルトの名無しさん mailto:sage [05/01/25 01:45:19 ]
インスタンスの定義はクラスから生み出されるオブジェクト、ですけど



915 名前:デフォルトの名無しさん mailto:sage [05/01/25 01:46:01 ]
>>913
instanceって言葉のの意味解ってる?

916 名前:言っとくけど823じゃないよ mailto:sage [05/01/25 05:18:08 ]
>>908
> 当然、インスタンスベースとかオブジェクトベースっても
> 通じやしないし、

このスレじゃ十分以上に通じてるじゃん(藁

> 再三プロトタイプベースの別の呼び名だと言っているそばから、俺定義
> をはじめるバカもいるってな始末でどーしようもない状態なのよ。

そいつ、再三にわたって「本来の定義は置いておいて、言語表現上のconstructs
から分類するとしたらどういう分類がありうるか、という議論をしている」と
いうようなことを言ってなかったか?

その議論に割り込んで「別の呼び名だ、馬鹿」と、マトハズレな痴態を晒す
マヌケもいるって始末でどーしようもない状態になったわけ。

しかも、constructsをsyntax sugarで覆えるわけないのにsyntax sugarだとか
言ってる大馬鹿もいるしでもう爆笑するしかないね。


917 名前:デフォルトの名無しさん mailto:sage [05/01/25 10:40:43 ]
>>914,915
「インスタンスベース」への受け入れ方で、その理解度がはっきりと
分かるというのはなかなかおもしろい効能だ。

918 名前:デフォルトの名無しさん mailto:sage [05/01/25 11:34:59 ]
>>908
その高い本の書籍名とISBN番号希望!

昔は洋書読まなかったんだけどAmazonができてから良く読む用になったんよ、
良い本あれば元値にはこだわらないから教えてほしい。
(昔は入手が大変だったのと$1 = \130の頃でも200円換算とかされてとても買う気になれんかった)



919 名前:デフォルトの名無しさん mailto:sage [05/01/25 12:14:18 ]
>>916
定義もおぼつかない状態で言語表現上の構造概念を論じること
は可能なの?

920 名前:デフォルトの名無しさん mailto:sage [05/01/25 13:40:28 ]
>>919
> 定義もおぼつかない状態で言語表現上の構造概念を論じること
> は可能なの?

言語表現上の構造や概念から定義しようという議論であることがまだ理解できない?


921 名前:デフォルトの名無しさん mailto:sage [05/01/25 15:48:43 ]
>>918
0387947752

922 名前:デフォルトの名無しさん mailto:sage [05/01/25 17:54:48 ]
A Theory of Objectsだね?
ありがとん。

923 名前:デフォルトの名無しさん [05/01/25 18:28:44 ]
>>913
プロトタイプ言語のクラスレスなオブジェクトはinstance っていう言葉の持つ自然な意味と
全く合致していない(むしろ対立している)から「インスタンスベース」っていう言葉はまずいでしょ。

英語としての言葉の意味なんてどうでもいいっていうなら、メソッドベースでもフレームベースでも
moon base でも何でもいいじゃん。

924 名前:デフォルトの名無しさん mailto:sage [05/01/25 19:25:03 ]
>>923
moon base は如何なものか。
せめて white b(ry



925 名前:デフォルトの名無しさん mailto:sage [05/01/25 20:06:44 ]
>>923
謎のの方か?、アルファの方か?、これで年齢が一回りは異なる訳であるが。

926 名前:デフォルトの名無しさん mailto:sage [05/01/25 21:10:27 ]
オブジェクトベース言語に「クラスがない」なんてのは常識の嘘。
そんなことにこだわっていると、かえって本質の理解を妨げるよ。

927 名前:デフォルトの名無しさん mailto:sage [05/01/25 22:08:55 ]
>>921は親切で教えてあげたのだろうが、これじゃひろゆきがしかけた
「電話番号張り付け検出スクリプト」にひっかかって警察に通報されてそうだ。

928 名前:デフォルトの名無しさん mailto:sage [05/01/25 22:17:33 ]
英語に疎いので辞書を引きました。
www2.alc.co.jp/ejr/index.php?word_in=instance&word_in2=%82%A0%82%A2%82%A4%82%A6%82%A8&word_in3=PVawEWi72JXCKoa0Je
| instance
| 【名-1】 場合{ばあい}、事実{じじつ}、(事実{じじつ}を例証
| {れいしょう}するための)例、事例{じれい}

これだけではよくわからんが、

| * instance a case of
| 〜の一例{いちれい}を挙げる

ってのがあるから、
「(クラスのような)テンプレートに相当するようなものがあり、
その中のひとつの例、実体」
ってニュアンスなのかな。だとすると「インスタンスベース」はまずいね。

「オブジェクトベース」では、いまや「普通」の(クラスベースの)OO言語を
指してしまいそうだし、
「プロトタイプベース」では、もしプロトタイプチェーンを持たないような
言語があったら困る。

さあ困った。

929 名前:デフォルトの名無しさん mailto:sage [05/01/25 22:22:40 ]
>>921
AmazonのURLはISBN番号を含んでいる事をたった今知りました。

A Theory of Objects (Monographs in Computer Science)
www.amazon.co.jp/exec/obidos/ASIN/0387947752/

930 名前:デフォルトの名無しさん mailto:sage [05/01/26 00:03:48 ]
7000円は流石に高すぎる

931 名前:デフォルトの名無しさん mailto:sage [05/01/26 00:16:53 ]
>>930
Gemsの原書もそんなものだし、普通じゃないかな?

932 名前:デフォルトの名無しさん mailto:sage [05/01/26 00:24:02 ]
プロトタイプベースを感じとりたいくらいで手を出せる本じゃないな。

933 名前:デフォルトの名無しさん mailto:sage [05/01/26 00:26:38 ]
>>932
そんだけだったら俺も手はださんだろうけど、専門書だったら普通じゃないか?
俺は技術書系の活字中毒だからなぁ、このくらいの値段の本だと年に10冊じゃ効かないかも。

#金がないときゃ図書館にお願いするが。

934 名前:デフォルトの名無しさん mailto:sage [05/01/26 22:53:50 ]
>>921
この書込にはおそらく電話番号書込自動警察通報システムが働いた



935 名前:デフォルトの名無しさん mailto:sage [05/01/26 23:00:22 ]
>>934
でも03でこの長さは電話番号じゃないからなぁ。


936 名前:デフォルトの名無しさん mailto:sage [05/01/27 11:27:26 ]
>>935
03-8xxx はないよね。3xxx と 5xxx だけ?

937 名前:デフォルトの名無しさん mailto:sage [05/01/28 13:55:03 ]
よく分かっていない人たちによる
よく分かっていないものに対する
たぶん、こんなもんだろうという
言語表現上の定義、まだぁ?

938 名前:デフォルトの名無しさん mailto:sage [05/01/29 11:35:28 ]
>925
SHADOだろ(w

939 名前:デフォルトの名無しさん mailto:sage [05/01/29 13:10:49 ]
>>938
制作はどっちもITCなんだがなぁ、10年以上の開きがあるんだよなぁ。
コーニッグ司令官とストレイカー長官じゃ。

940 名前:デフォルトの名無しさん mailto:sage [05/01/29 14:54:02 ]
粘着の発生により、誰もいなくなりました。

======== 終 了 =========

941 名前:デフォルトの名無しさん [05/02/03 20:37:55 ]
定義の話なんてやめればいいだけ

942 名前:Javaのスイッチ文のように作用し、 mailto:sageそのタグ内で幾つかの候補を選択することになる。 [05/02/03 20:55:50 ]
だな。

943 名前:デフォルトの名無しさん mailto:sage [05/02/07 19:49:57 ]
Methodの呼び出しを効率よくJIT化ってできないもんでしょうか?
単純にテーブル生成するとメモリ食ってヒドイ目に遭うんです。


944 名前:デフォルトの名無しさん mailto:sage [05/02/11 01:27:14 ]
>>943
Methodの呼び出し部分をJIT化して効率よくなるってことは、
呼び出されるMethodの方は、当然JITコンパイルされてるんだよね?



945 名前:デフォルトの名無しさん mailto:sage [05/02/11 02:24:20 ]
>>943
CPUの分岐予測みたいに以前のメソッド呼び出しだけを保存しておいて、
次回の関連オブジェクトの状態も不変なら<抽象的でごめん
そのままコール、だめならもっと上位の定義から辿る。

以上素人考え……遅そう。

>>944
たぶんCPUのキャッシュ効率を考えてるんじゃないかな。

946 名前:デフォルトの名無しさん mailto:sage [05/02/18 23:32:39 ]
ECMAScript 関連で参考になるサイト。
Effective JavaScript(ttp://www.interq.or.jp/student/exeal/dss/ejs/)
JavaScript 深層(ttp://www.hawk.34sp.com/stdpls/jsnotes/jssinso/)
結構当てになると思うけどどうよ?

947 名前:デフォルトの名無しさん mailto:sage [05/02/19 00:43:20 ]
別に

948 名前:デフォルトの名無しさん mailto:sage [05/02/20 18:31:11 ]
というか全然

949 名前:デフォルトの名無しさん mailto:sage [05/02/20 18:32:35 ]
>>947-948
殺してやる

950 名前:デフォルトの名無しさん mailto:sage [05/02/20 18:33:38 ]
>>949
殺して姦る

951 名前:デフォルトの名無しさん mailto:sage [05/02/20 21:12:37 ]
>>947
>>948
どの辺が?

952 名前:デフォルトの名無しさん [05/02/22 23:39:31 ]
今作ってる俺言語に、プロトタイプベース(オブジェクトベース?)風のOOの
機能を盛り込もうとしています。

言語そのものは、C風の文法の形無し言語です。
んで、

o = new_object();

とすることで、o.hoge 形式で参照可能な連想配列が取得できるようにする。

そうすれば、後はクロージャを実装するだけで、

new_point(x, y) {
 o = new_object();
 o.x = x;
 o.y = y;
 o.move = function (x, y) {
  o.x += x;
  o.y += y;
 }
}

なんて形で、そこそこそれっぽいものが書けそうな気がするんですが、
どんなもんでしょうか。
そんなのOOじゃねえ、とか、それじゃ実装できんだろ、とか、
気が付くところがあったら教えてくださいませ。
# プロトタイプチェーンはもちょっと後で考えるつもり。

953 名前:デフォルトの名無しさん [05/02/23 08:32:12 ]
o.hogeに関数を設定するのと関数の返り値を代入するのはどう書き分けるの

954 名前:デフォルトの名無しさん mailto:sage [05/02/23 09:11:38 ]
>>953
普通に{...}があるかないかじゃダメなのか?




955 名前:デフォルトの名無しさん mailto:sage [05/02/23 11:49:56 ]
>>953
functionって関数名じゃなくて関数宣言の予約語じゃないの?

956 名前:デフォルトの名無しさん mailto:sage [05/02/23 14:21:33 ]
WEB制作板にカエレ

957 名前:952 mailto:sage [05/02/24 00:23:25 ]
>>953-955
反応ありがとう。

>>955が正解で、functionは予約語です。
んで、>>952ではいくつかポカしてて、通常の関数定義の際もfunctionは
必要で、かつ、new_point()はただの関数なので、>>952のリストは実際にはこうなります。

function new_point(x, y) {
 o = new_object();
 o.x = x;
 o.y = y;
 o.move = function (x, y) {
  o.x += x;
  o.y += y;
 }
 return o; ←returnが必要
}

関数のネストは今のところ考えてないので、スコープは、
・グローバル
・関数内ローカル
・ネストした分のクロージャ
になるんじゃないかと思ってます。

958 名前:デフォルトの名無しさん [05/02/24 10:45:47 ]
プロトタイプ・チェーンの無いものはプロトタイプベース・オブジェクト指向言語と呼ぶべきでない、
みたいな議論、どーでもいい話で盛り上がってるっぽくてワラタ

そんなん、プロトタイプとなるインスタンスへの委譲がなくとも、
インスタンスをプロトタイプとして新しいインスタンスを作るんだから、プロトタイプ〜でええやん。

こーゆーつまらん議論を喧喧ガクガクやって、しまいには辞書まで引っ張り出してくるのって、
きっと(ry

959 名前:デフォルトの名無しさん [05/02/24 10:55:24 ]
一見意味がありそうで、実はとってつけたどーでもいい話を延々するのは、文系人間のビョーキだな

960 名前:デフォルトの名無しさん mailto:sage [05/02/24 22:08:44 ]
>>958
そーゆーつまらん議論はとっくに終わっているのに、わざわざほじくりだして
しかもageるのって、きっと(ry

961 名前:デフォルトの名無しさん [05/02/27 12:58:24 ]
そして誰もいなくなったらしい…
1000目前でこれは悲しいので、一応ageとく。

次スレはいらないの?


962 名前:デフォルトの名無しさん mailto:sage [05/02/27 15:26:12 ]
>>961


963 名前:デフォルトの名無しさん [05/02/27 15:29:24 ]
次スレは、「POO総合スレ」的なのがいいな。

964 名前:デフォルトの名無しさん mailto:sage [05/02/27 21:56:44 ]
タイトルにインスタンスベースも入れて欲しい。



965 名前:デフォルトの名無しさん mailto:sage [05/02/27 22:52:20 ]
このスレは
頭が痛くなるだけで
何も生み出さない
次スレは*無し*の方向で

966 名前:デフォルトの名無しさん mailto:sage [05/02/28 00:24:42 ]
>>965
あんたの頭が足りないのをスレのせいにされてもなあ…
上のほうには有意義な議論もあったろうに。


967 名前:デフォルトの名無しさん mailto:sage [05/02/28 01:09:09 ]
有意義か?www
結局ここに書き込んでる奴は、何がしたいわけ?
>>3-4みたいなマイナー言語並べて各自の勝手な解釈で
分類の仕方に終始してるだけというか。
何が有意義なのかねえ・・
言語ごとに専用スレ立てれば?

968 名前:デフォルトの名無しさん mailto:sage [05/02/28 02:02:03 ]
ファビョるなよ低脳…。合わないならこんなスレ来ないで、
HSPスレなりマ板なりどこでも逝けばいいだろうに。

969 名前:デフォルトの名無しさん mailto:sage [05/02/28 02:49:29 ]
うわww
合う合わないの話なんてしてないのに。
自分が低脳だとは考えたことが無いんだろうね。
痛すぎるよ、君。

970 名前:デフォルトの名無しさん mailto:sage [05/02/28 08:39:01 ]
>>969
すげえ。本物の低脳だ。

971 名前:デフォルトの名無しさん mailto:sage [05/02/28 19:33:03 ]
Rubyこそ最高言語

972 名前:デフォルトの名無しさん mailto:sage [05/02/28 19:43:12 ]
>>971
すげえ。本物の低脳だ。

973 名前:デフォルトの名無しさん [05/03/01 01:31:10 ]
 で、低脳は放置するとして、次スレはどうするよ?

>>964
 「インスタンスベース」という言葉は一般に使われていない上に、
英語としても変(>>928)だから、却下されるべきだと思うよ。

 俺としちゃ、プロトタイプOOな言語が具体的にどういう時に役に立つのか、
もうちょっと色々話を聞きたいと思ってる。
 >>133のリンク先にある話は割とわかるんだが、200〜あたりで話されている、
「プロトタイピングで便利」というのは納得しかねるなあ。動かしながらいじるのが
便利だとして、具体的にどこをどういじりたいんだろう?


974 名前:デフォルトの名無しさん mailto:sage [05/03/01 04:04:25 ]
自分が低脳だとは考えたことが無い低脳は放置するとして、次スレは無しの方向で。



975 名前:デフォルトの名無しさん mailto:sage [05/03/01 10:11:19 ]
自ら“英語に疎い”と認めつつ、実際に動詞としての使用例で以って
“だとすると「インスタンスベース」はまずいね”と仰ってしまう >>928
果たして参考になるのだろうか…?

976 名前:デフォルトの名無しさん mailto:sage [05/03/01 10:54:04 ]
>>975
意味をよく掴めなかったので、つっこみつつ質問。

> 自ら“英語に疎い”と認めつつ、実際に動詞としての使用例で以って

疎い思っているからこそ(失礼、>>928さん)、辞書をひいたのでしょう。
確固とした情報源を使うことで、(変な論理で話を変な方向に展開させなければ)
信頼できる情報となり得るのではないでしょうか。

まさか、「英語に疎い人が辞書を使っても、信頼なんかできないよ」
という意味ではないですよね?

977 名前:デフォルトの名無しさん mailto:sage [05/03/01 11:48:39 ]
できないよ。w

978 名前:デフォルトの名無しさん mailto:sage [05/03/01 12:11:19 ]
まあ「インスタンスベース」はある種、ちょっとイジワルな踏み絵ですね。
嫌悪感を示す人の中で、このパラダイム向け言語処理系をある程度、
まともに使ったことがある人は皆無に近いと思いますよ。
批判的になることで、自ら、その事実を晒してしまっているわけです。

979 名前:デフォルトの名無しさん mailto:sage [05/03/01 12:33:35 ]
>>978
> 嫌悪感を示す人の中で、このパラダイム向け言語処理系をある程度、
> まともに使ったことがある人は皆無に近いと思いますよ。

ポカーン
英語的に問題あるという話なのに、978は一体何を考えているのでしょうか?


980 名前:デフォルトの名無しさん [05/03/01 12:36:49 ]
こーゆーつまらん議論を喧喧ガクガクやって、しまいには辞書まで引っ張り出してくるのって、
きっと(ry


981 名前:デフォルトの名無しさん mailto:sage [05/03/01 16:52:31 ]
>>979
ん、英語的に問題? 問題があるのは928(と979)の理解のほうだろ。
インスタンスが「クラスのインスタンス」のコンテキストを意味するのは
自明のことだし、インスタンスベースがオブジェクトベースの同義である
ことはインスタンスがオブジェクトと同義である程度には許されるはずだ。

そして、このパラダイムに則って運用される世の中のオブジェクトのほと
んどが実質、何らかのクラスに属している。つまり、当初、取りざたされ
たようなクラスの有無は、このパラダイムにおいて本質じゃない。

お前みたいのが分かったふりして出てくるのを助長するからプロトタイプ
ベースってのは限定的でマズいって話。これだけ繰り返しても、まだ分か
らないのか?

982 名前:デフォルトの名無しさん mailto:sage [05/03/01 18:33:18 ]
>インスタンスが「クラスのインスタンス」のコンテキストを意味するのは自明のことだし

自明じゃないだろ。
「クラスのインスタンス」と自分で自明じゃない事を証明してしまってるじゃないか。
アフォか。

983 名前:デフォルトの名無しさん mailto:sage [05/03/01 18:55:58 ]
>>982
悪かった。このスレ以外では…、と但し書きを入れるのを忘れてたよ。orz

984 名前:デフォルトの名無しさん mailto:sage [05/03/02 00:08:18 ]
インスタンスベースなんて、おかしな用語を広めようとしているのは
何を目的としているのだろう。

英語の文献では、prototype basedもしくはclone basedくらいしか
使われていない。英語の意味的にもinstance basedは有り得ない
のだから、変な用語を広めようとするのは止めてくれ。



985 名前:デフォルトの名無しさん mailto:sage [05/03/02 01:18:58 ]
>>984
どんな文献を読んで言っているんだか…。文献調査が足りてないぞ、学生君。
とりあえず、手近な文献データベースでinstance-based AND object-orientedな
検索かけてみたまえ。話はそれからだ。

986 名前:デフォルトの名無しさん mailto:sage [05/03/02 01:33:06 ]
instance-based : 実例を基本とした

987 名前:デフォルトの名無しさん mailto:sage [05/03/02 04:14:22 ]
>>981
> インスタンスが「クラスのインスタンス」のコンテキストを意味するのは
> 自明のことだし、インスタンスベースがオブジェクトベースの同義である
> ことはインスタンスがオブジェクトと同義である程度には許されるはずだ。

じゃ、その定義によるとSmalltalkはインスタンスベースだな。プゲラ

988 名前:デフォルトの名無しさん mailto:sage [05/03/02 08:18:56 ]
>>985
検索にヒットしたらそれが正しい用語だと思っているのか?
instance-basedとobject-orientedの両方が含まれているだけの文章が
山程ヒットしているだけで、無関係のものしかないようだが?

ここ10年くらいのまともなプログラミング言語系journal、proceedingsや
それ以前の主要な文献でinstance-basedなんて言葉をいわゆる
プロトタイプベースの意味で使ったものなんか見たこと無いぞ。

989 名前:デフォルトの名無しさん mailto:sage [05/03/02 11:22:27 ]
>>988
> instance-basedなんて言葉をいわゆる
> プロトタイプベースの意味で使ったものなんか見たこと無い

へえ…

portal.acm.org/citation.cfm?id=312023
portal.acm.org/citation.cfm?id=141955
portal.acm.org/citation.cfm?id=84459
portal.acm.org/citation.cfm?id=323737
...

990 名前:デフォルトの名無しさん mailto:sage [05/03/02 18:16:37 ]
Rubyですべて解決!!!!!!!!!!!11111111111

991 名前:デフォルトの名無しさん mailto:sage [05/03/02 19:09:54 ]


992 名前:デフォルトの名無しさん mailto:sage [05/03/02 19:30:32 ]


993 名前:デフォルトの名無しさん mailto:sage [05/03/02 19:44:40 ]
nullpo

994 名前:デフォルトの名無しさん mailto:sage [05/03/02 19:53:40 ]




995 名前:デフォルトの名無しさん mailto:sage [05/03/02 19:56:12 ]


996 名前:デフォルトの名無しさん mailto:sage [05/03/02 19:59:41 ]


997 名前:デフォルトの名無しさん mailto:sage [05/03/02 20:01:39 ]







998 名前:デフォルトの名無しさん mailto:sage [05/03/02 20:03:28 ]
      ./       ;ヽ
      l  _,,,,,,,,_,;;;;i  <いいぞ ベイべー!


999 名前:デフォルトの名無しさん mailto:sage [05/03/02 20:04:09 ]










1000 名前:デフォルトの名無しさん mailto:sage [05/03/02 20:04:20 ]
nextThread = [ self clone ];

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<368KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef