2009-03-09から1日間の記事一覧

子より親の方が必ず長生きと言えるんだろうか。

C#

子が親への参照を持っているとき、親がdeleteされる時に子が生存し続けるべき状況は存在しない これ自体は間違いなさそうだな。しかしクロージャを入れるのは他人だから、その他人が子だけを参照して親を参照することをやめてしまえば破綻する。よく分からん…

そうか

C#

つまり型の定義を循環させないことで、実行パスの循環はまず解決される。再帰は局所的な、1クラスの中に留められる。ポインタの循環も悪性のものを根絶できる。 しかし、しかしだ。なぜ型の定義を循環させなくても工夫すればプログラムが普通に書けちゃうの…

ポインタの循環とクロージャ

C#

ポインタは循環せざるを得ないとこはあるのだが、クロージャでの使用に留めるべきだろうと思う。クロージャなら暗黙に親への参照は持っているのだが本人はいじれないので問題は無い。クロージャがないならinterfaceのみの使用に留めるべきだという話になるだ…

実行パスの循環と再帰

C#

ボタンがクリックされた時にウインドウをいじりたいなら、ポインタは循環する必要がある。子が親に直接作用するにはポインタが循環する必要がある。これは分かりやすい。 実行パスが循環する必要もある。関数が導入された時、実行パスの循環は局所的な繰り返…

静的型

C#

C#やJavaを理解するためにもEffective C++を読む必要があるように思う。静的型に対する理解が深まる。しかし全然足りない。 なぜ型の定義が循環参照することが誤りであると言えるのか分かれば多分静的型の謎は全部解けるんじゃないかと思う。実行パスは循環…

C# 4.0とdynamic

C#

C#のコア部分は3.0でほぼ完成していて、4.0にはちょっとした地道な改良が乗るだけだ。それでも変化としては結構大掛かりで、Javaなら大もめにもめて結局乗らず、C++なら10年後にようやく仕様が完成するぐらいの改良はやってると思う。C#は言語設計が身軽でい…