Out of Memory

本ブログは更新を停止しました。Aerieをよろしくお願いいたします。

目次

Blog 利用状況

ニュース

2009年3月31日
更新を停止しました。引き続きAerieを御愛顧くださいませ。
2009年2月3日
原則としてコメント受付を停止しました。コメントはAerieまでお願いいたします。
詳細は2月3日のエントリをご覧ください。
2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

αετο? / aetos / あえとす

シャノン? 誰それ。

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

書庫

日記カテゴリ

集合の集合 リベンジ

以前書いたエントリで、「集合の集合」がよくわかんねぇ、とか言ってた。
で、いろいろな方からヒントを頂いて、正直なところ、「あれ? 俺が悩んでたのはそんなことだったんだっけ?」と思った。

で、昨日のエントリを書いたことで、当初の疑問を思い出した。

クラスとは、インスタンスの集合であるとする。
派生クラスとは、基底クラスの部分集合であるとする。

クラスの継承関係は、基本的には抽象度に着目して行うべきだ。
基底クラスは派生クラスよりも情報量が少なく、抽象度が高い。
これは、別の言い方をすれば「内包が小さく、外延が大きい」とも言う。

では、クラスとインスタンスの関係はどうか?
クラスとインスタンスの関係も、抽象度の違いがあるはずだ。
よく使われるたとえ話に「犬クラスと、そのインスタンスであるポチ」がある。
犬クラスは、個々の犬の名前を捨象している。

ここで「ポチクラスを作ろう」というのではない。逆だ。

昨日の話では、XMLクラスの派生クラスとしてXHTMLやXAMLを置き、そのインスタンスとして、それらの言語で書かれた文書を挙げた。
だが、XHTMLやXAMLといった言語を、XMLクラスのインスタンスとしてもよかったのではないか? と思うわけだ。
そうしたとき、個別言語は、XMLクラスのインスタンスであると同時に、各文書のクラスでもある。
集合論の言い方をすれば、XMLクラスは「クラスの集合」であり、「集合の集合」であることになる。

現在、主流のオブジェクト指向言語では、クラスのクラスを記述できない。
Java の ClassLoader とか .NET の System.Type は、ある意味で「クラスのクラス」だが、XML の例とは抽象化の方向性が違うように思う。

うまくまとまらない。むーん。

投稿日時 : 2007年11月21日 10:53

Feedback

# re: 集合の集合 リベンジ 2007/11/21 10:58 774RR

メタクラスってことでおk?
template はメタクラスで委員ぢゃ無いの?

# re: 集合の集合 リベンジ 2007/11/21 11:07 シャノン

集合関係を記述するのに、
・最下層ではクラス
・その1個上では template
・さらに上では(C++0xの)コンセプト
という、層ごとに違う仕組みを使わなければいけないのがしっくり来なかったり。

# re: 集合の集合 リベンジ 2007/11/21 11:45 れい

> 昨日の話では、XMLクラスの派生クラスとしてXHTMLやXAMLを置き、そのインスタンスとして、それらの言語で書かれた文書を挙げた。
> だが、XHTMLやXAMLといった言語を、XMLクラスのインスタンスとしてもよかったのではないか? と思うわけだ。

そうですよね。
データとメタデータの境界がボンヤリしちゃうこと、結構あるんですよね。
私はよくクラスにTypeプロパティを持たせて管理するべきか、
Typeごとに継承すべきか悩みます。
「継承」はメタデータなのに、「継承してる」っていうだけで十分データなんですよね。

templateはメタメタでコンパイラレベル、
クラスはメタで実行時レベルで固定ですよね。
メタな世界に自由に行き来するために
クラスをクラスで表現するのも可能は可能なんだけど、
RDBMSをOOPで扱うときみたいにめんどくさくなっちゃう。

誰か何とかして欲しいものです。

# re: 集合の集合 リベンジ 2007/11/21 16:04 シャノン

動的言語とかプロトタイプベースが答えになるのかな?
それはそれでなー。でも仕方が無いか。

# 月間ページビュー 2007年11月 2008/04/20 22:31 Out of Memory

月間ページビュー 2007年11月

タイトル
名前
Url
コメント