編集可能

型とクラスと集合と

「オブジェクト指向ってなんだっけ?」 http://togetter.com/li/86650 に続く、型やクラスを集合とみなしたりみなさなかったりの議論など。
20
mzp @mzp

クラスってオブジェクトの集合じゃないんすか?なんかこう、ちょっと定義を工夫すれば集合として扱えそうな気がするんだけど

2011-01-06 00:21:57
mzp @mzp

集合で形式化するより、○○で形式化したほうが便利!とかならありそう

2011-01-06 00:24:53
hiratara @hiratara

関数型言語の最大の利点は、コーディングにより一層数学的な素養を求めることで、似而非プログラマを業界から追い出せるってことなんじゃないかなあ。

2011-01-06 00:25:44
佐原伸 @donkeyshin

少なくともSmalltalkやVDM++では、オブジェクトの集合ではありません。 "@mzp クラスってオブジェクトの集合じゃないんすか?"

2011-01-06 00:37:09
mzp @mzp

@donkeyshin SmalltalkやVDM++に詳しくないんですが、クラスをオブジェクトの集合として見なすことのできない機能でもあるんでしょうか?

2011-01-06 07:24:22
mzp @mzp

@keigoi Javaのジェネリックって、普通のクラスに変換できるんじゃなかったでしたっけ? よくしらないですけど。 普通のクラスに変換しちゃえば、自分自身を型パラメータに含むからといって特別扱いいらないんじゃないんですか?

2011-01-06 07:29:50
takeo @bonotake

@pokarim 先にTAPL読んだ方がいいっす

2011-01-06 07:36:37
佐原伸 @donkeyshin

SmalltalkにはallInstancesとかあっと思いますが、本質的な機能では無かったと思います。 VDM++はそれも無し(^-^)/ “@mzp: @donkeyshin SmalltalkやVDM++に…クラスをオブジェクトの集合として見なすことのできない機能…”

2011-01-06 08:44:10
Keigo Imai @keigoi

@mzp そうだけど、べつにC++で考えてもいいですよ。あるクラスをどういう集合であるとみなすかが元々の意図であって、どうコンパイルされるか、とは関係ないかなと思う。

2011-01-06 08:45:45
佐原伸 @donkeyshin

クラスの責任は、インスタンスの性質を保持して作り出すのが主で、インスタンスを管理するのは、まあ、あっても良いというところでしょうか? 怠け者プログラマとしては、あったほうが便利ですが…(^-^)/ “@mzp: @donkeyshin …クラスをオブジェクトの集合として見なす…”

2011-01-06 08:53:00
hiratara @hiratara

やっぱTAPLは買っといた方がいいかなあ。

2011-01-06 09:21:47
takeo @bonotake

@hiratara 型と論理の話が総覧できる本て何かないですかね。CLTTまでいかないやつ。

2011-01-06 09:34:21
hiratara @hiratara

@bonotake そんな本があれば自分も読みたいです(笑)。「論理と計算のしくみ」は途中まで読んでますが、型理論はほんのさわりしか出てこないと思います。 http://amzn.to/ea0Jzo

2011-01-06 09:39:04
takeo @bonotake

@hiratara 型は別に勉強せざるを得ないのかなぁ… 「論理と計算のしくみ」はいい本です

2011-01-06 09:57:50
mzp @mzp

はらへったぞーー

2011-01-06 12:06:07
pokarim @pokarim

@bonotake 了解です。今読んでます。。。が、もうしばらくかかりそうです。。。

2011-01-06 12:11:54
pokarim @pokarim

@bonotake スタートは、どうしたらちゃんと議論ができるのか?、というところだったので、まずTAPLを読めっていうのが答えで個人的にはすっきりしましたです。

2011-01-06 12:20:17
takeo @bonotake

@pokarim 実際問題、CLTTで多相型が登場するのが441ページ、"subtyping"が登場するのは495ページで…とても長い道のりです(^^; TAPLはいい本なので、そこから入るのは全然間違いじゃないです。

2011-01-06 14:35:37
Kazunori Otani @katzchang

抽象データ型はそのインスタンスの集合なのか?

2011-01-06 16:22:46
Kazunori Otani @katzchang

そもそもデータ型はインスタンスの集合なのか?型は、その型である値の集合と捉えるができる?

2011-01-06 16:27:04
Kazunori Otani @katzchang

データ型に着目するのは、メッセージ指向のオブジェクト指向言語ではクラスはオブジェクトの集合ではないし、プロトタイプ指向ではクラスはプロトタイプオブジェクトであって集合ではない。ということはクラスを集合として捉えるのは抽象データ型としてのそれなので、どこまで掘り下げれるのかなと。

2011-01-06 16:30:11
Kazunori Otani @katzchang

プロトタイプ指向でクラスパターンというデザインパターンを利用すると、ということですよ。

2011-01-06 16:31:24
mzp @mzp

@katzchang 単純型つきラムダ計算とかだと、型は値の集合として捕らえてたはずです。型システム一般に広げれる話かどうかはわかんないですけど。

2011-01-06 16:31:24
Yasuo Nakanishi @nakanishiyasuo

@katzchang クラスはその名前の通り、「分類」じゃダメなんですか?

2011-01-06 16:35:49
残りを読む(66)

コメント

pokarim @pokarim 2011年1月7日
@masahiro_sakai さんのつぶやきを追加しました。
0
Masahiro Sakai @masahiro_sakai 2011年1月14日
トゥギャられていた自分の発言に関連して、 @esumii さんの発言と自分の補足発言を追加。
0