C++のObject Slicingとオブジェクト指向言語の引数の評価戦略の話

TLで流れていた、オブジェクト指向での引数の云々の話をまとめました。 分量があるので、抜けているところがあったらお知らせください。
2
Fukui-san @ftakao2007

メモリ上での挙動をある程度理解してないとこの辺の事ってそもそも議論する事が不可能だという事がなんとなくわかって来た。

2015-02-07 16:03:37
Fukui-san @ftakao2007

「メモリに乗っかった時点」の時点のメモリの領域がヒープ領域なのか、スタック領域なのかで議論が別になるので。 ヒープ領域とスタック領域の使われ方を理解しないとそもそも議論できない。

2015-02-07 16:07:07
Fukui-san @ftakao2007

Rubyの勉強が目的なのにJavaで説明しているページが多い。オブジェクト指向そのものの勉強はJavaが分かりやすいのかなぁ。

2015-02-07 17:17:59
Fukui-san @ftakao2007

モダン言語の最基底クラスがObjectって意味で、Rubyは全てがオブジェクトって事なのかなぁ。色んな視点のアプローチがあって勉強してて面白い。

2015-02-07 17:36:33
Fukui-san @ftakao2007

最大の概念にして最小の単位オブジェクト。クラスもオブジェクト。 なんか哲学入ってきた。

2015-02-07 17:37:39
Fukui-san @ftakao2007

どんな処理も必ずヒープ領域とスタック領域を使うものが純粋なオブジェクト指向。スタック領域のみで処理する仕組みはオブジェクト指向ではない。 よってJavaは純粋なオブジェクト指向ではない。ただ、ヒープ領域を使わずスタック領域のみで処理できるのでパフォーマンス的に利点もある。

2015-02-07 17:50:36
Fukui-san @ftakao2007

むしろマサカリが欲しい

2015-02-07 17:52:00
Ryusei @mandel59

そういうことじゃない

2015-02-07 18:08:00
Ryusei @mandel59

「プリミティブ型がない」ってのと「直データはすべてヒープ領域に保持される」ってのは別のことでは

2015-02-07 18:08:45
Ryusei @mandel59

意味論の話と、実装の話とがあるからなあ

2015-02-07 18:09:44
Ryusei @mandel59

「純粋なオブジェクト指向」の話にはそもそもヒープ領域とかスタック領域って言葉自体が出てこない

2015-02-07 18:12:29
Ryusei @mandel59

まあオブジェクト指向のどの部分が純粋なものかどうかのコンセンサスとかないと思うけど

2015-02-07 18:14:42
隅須正昭 @nagoya313

ところでRubyが整數インクリメントできないのつてなんか實裝上の制約みたいな事聞いた事あるけどどうなの

2015-02-07 18:15:36
名賀月晃嗣 (あっきー) @acy

個人的には、「ポリモルフィズムができたらオブジェクト指向」かなあ? 隨分「亂暴」な言葉遣ひではあるけれども。

2015-02-07 18:17:22
Ryusei @mandel59

実装上の制約じゃなくて、設計上の決定だと思う。

2015-02-07 18:17:24
Ryusei @mandel59

実装できるかどうかだけで言えば別に実装は難しくなくて、ただMatzが実装しないって決めただけ。 なんでそう決めたかは↓に書いてある blade.nagaokaut.ac.jp/cgi-bin/scat.r…

2015-02-07 18:18:17
Ryusei @mandel59

「++の動作が本質的に「変数を操作する」ものである」ってのがよく分かんないですけどね

2015-02-07 18:18:57
Ryusei @mandel59

「++の動作が本質的に「変数を操作する」ものである」、そんなわけないじゃないですか

2015-02-07 18:19:35
Ryusei @mandel59

当時のMatzは左辺値という概念をご存じなかったのではないか、と思う

2015-02-07 18:20:02
Ryusei @mandel59

右辺値・左辺値とか、大学でプログラミングやってていてさえ、ちゃんと教わらない概念だけど、右辺値・左辺値ってめっちゃ重要な概念だと思うぞ

2015-02-07 18:20:59
Ryusei @mandel59

少なくとも筑波大学のプログラミング入門コースとかで右辺値・左辺値の説明とか聞いたこと無い

2015-02-07 18:21:34
Ryusei @mandel59

いやまあ概念の名前を知らないってだけで、名前は知らなくても感覚的にはわかっているし、だから教えないでもプログラムとか書けちゃうんだけど

2015-02-07 18:23:12
Ryusei @mandel59

今は検索すればいくらでも情報が出てきて、すごい世の中になってしまった

2015-02-07 18:24:11
Ryusei @mandel59

まあ「変数がオブジェクトじゃない」の言わんとすることは分かる

2015-02-07 18:26:11
Ryusei @mandel59

分かるけど、じゃあなんで op= 形式は入れるんだって話になるよね……

2015-02-07 18:29:24
1 ・・ 9 次へ