OOP

「オブジェクト指向入門」

OOP

関連:id:sumim:20040525:p1 いろいろなところ(っても主に はてな 界隈ですが…)で目にするようになったので、買ってみました。 (69 ページ) ここまできたところで、もう一度多くの入門者にとって紛らわしい概念を区別しておこうと思う。それはクラスとオ…

Objective-C のプロトコル

…について、その始祖に当たる言語機能が他の言語に見つけらなくて難儀しているところなのですが、上で継承にからめてプロトコルという言葉を使っていると、ふと、もしかしたら本当に(失敬!w) Objective-C*1のオリジナルで、文字通り、Smalltalk のプロト…

プロトコルブラウザとトランスクリプトの改行

確かTranscriptに改行するようメッセージを送れたと思い、WorkspaceのTranscriptという文字列を選択して、黄色ボタン (Option+ボタン) のmore...からシステムブラウザを表示する。文字列選択状態で"Command+b"でもいい。 それを見ると"TranscriptStream"のイ…

Eiffel のブロック

OOP

気になって調べてみたらありました。inline agent というらしい。 Smalltalkの block closure のような機能です。 ふむ。Java の無名インナークラスっぽい実装ではないのですね。クラス指向の OOP を標榜する(と、勝手に思い込んでいた) Eiffel にしては意…

Ruby らしさ

OOP

Ruby Conference 2004 での Nathaniel さんの発表も思い出してしまう。彼は発表の中で、現在の Test::Unit が「Ruby らしくない」といって批判し、より「Ruby らしく」したtest/unit2 を開発中だそうだ。そのサンプルの一部は発表の中で内で公表されていたが…

「オブジェクト指向プログラミングとは何か?」[Stroustrup87] (PDF, ただし '91 改訂版)

OOP

関連:[OOP] オブジェクト指向の概念の発明者は誰ですか? くだんのオブジェクト指向3点セットの元になったともくされる論文のメモ。抽象データ型に加えて、以下の機構がオブジェクト指向プログラミングをサポートするのに必要とされる。 特殊な関数呼び出…

抽象データ型のスーパーセット(カプセル化+継承・多態性) vs メッセージ指向

OOP

…の構図ってのは、クラスベースオブジェクト指向 vs プロトタイプベースオブジェクト指向 の構図にちょっと似ていますね(構図だけでなく、クラスは必須か否かを扱うだけに、完全にオーバーラップする対立点、うがった見方をすれば代理戦争的側面、もありそ…

お定まりの決めつけにいちいち反応するのも ATP の無駄遣いなような気がしますが…

OOP

Smalltalk で抽象データ型のスーパーセットをまったく無視しているとか、C++ でメッセージ指向できないとか言っているわけではありません。っていうか、まず、文献欲嫁?

オブジェクト指向に不幸があるとするならば…

OOP

つらつらとおもんみるに、ケイ(Smalltalk)が“それ”を「メッセージ指向」と言い続けなかったこと、ストラウストラップ(C++)が“また別のそれ”を「クラス指向」と言い換えなかったこと、に尽きるかな、と。

最近見つけた…

OOP

これ(オブ脳 vs アンチ)や、ちょっと古いけどこれ(Java は純粋 OOPL ?)なんかも、その典型でしょうね。上の前提に立てば、どちらも言っていることは正しい…って感じがしますから。

このごろ、Web メールのメールボックスらしきリファラが多いと思ったら…

OOP

オブジェクトの広場の ML で熱いオブジェクト指向談義が展開されているのですね。1980 年代以降の OOD/OOA からすると、私の 1960 年代までさかのぼる オブジェクト指向(より厳密には OOP)の起源に関する研究(ぉぃぉぃ…)成果は、“古典”のひと言でうち捨て…

純粋“オブジェクト指向”言語。ただしこの場合“オブジェクト指向”は (ry

OOP

ある意味“別格”の、つまり、メッセージ指向というパラダイムの有効性を検証するため(だけ)に作られた Smalltalk システムにおける Smalltalk 言語を除けば、個人的には、純粋オブジェクト指向言語と名乗ってよい言語は SELF くらいしか思い付きません。それ…

空だろうがなんだろうが

OOP

文字列は文字列であって、偽か真か以前に、真偽値 にすらなりようがない のように扱えることにそもそも違和感があり…と思うのは私だけでしょうか?w ま、Ruby の条件分岐はオブジェクト指向たることをハナから放棄しており(なお、ここでの“オブジェクト指…

「継承はサブタイピングではない」[Cook90]

OOP

…のメモ。再帰的な型 T を、 T = µt.F[t]と書くとき、 T = µt.{a:int, c:t, b:t→t} T1 = {a:int, c:T, b:T→T, d:bool} T2 = µt.{a:int, c:t, b:T→t, d:bool} T3 = µt.{a:int, c:t, b:t→t, d:bool}で、 T1, T2 は T のサブタイプだが、T3 はそうではない(型 …

ソースはかりそめ

OOP

いつもの某 Ruby スレをながめていたら こんなの を見つけて(これとは直接は関係ないのですが)「ソースはかりそめ」の話は Ruby ではどうなっているのかなぁ…と思って試してみました。 class A def a; [1, 2, 3] end end a0 = A.new a1 = A.new a0.a[0] = …

Groovin' with Groovy

簡単なループのベンチマークのJava 版、Ruby 版 が載っていたので、早速手近なマシン(type U、1GHz)で、fact の引数を 100 に増やしたものを試してみました。 Java: 0.972 MicroSeconds per call Ruby: 899 MicroSeconds per call Java 、速すぎ(笑)。(追…

クロージャ vs オブジェクト

クロージャはこないだの台風並みに乱暴に言えば、無名関数で、関数ポインタで、無名内部クラスで、手続きを [ ] で括っただけのものだったりする一方で、アクター、ひいてはオブジェクトと理屈では等価なものだったりもするわけです。三段論法的には関数とオ…

「オブジェクト指向でなぜつくるのか」 第7章のクイズ

最近話題の同書ですが、あまりに絶賛の嵐なので購入してみました。内容は端的には Java ユーザー向け「憂鬱なプログラマのためのオブジェクト指向開発講座」(の入門編)といった感じでしょうか。たいへん平易に氏の考えるオブジェクト指向が説明されていて…

CLU をデザインするときに、あなたは SIMULA を知っていましたか? プログラムは組みましたか?

OOP

抽象データ型と言えば、バーバラ・リスコフの CLU、ということで、mizu さんのコメントにからめて「History of Programming Languages - II」の「A History of CLU (PDF)」を含む CLU のセッションの章などをつらつらと 読んで 眺めて(^_^;) おりました。残…

LL Weekend 梅澤さんのデモの感想

…が、ぼちぼち Google キャッシュされてきているみたいですね。本家のトラバと重複しますが… とても上手なセッションで感服いたしました。 いろいろ「すげーーー」と思わされる物が多かったです。 プレゼンは梅澤さんのSqueakに度肝を抜かれた。 動きのある…

Smalltalk のクラス

Smalltalk のオブジェクト指向が、「抽象データ型のスーパーセット」としてのオブジェクト指向ではなかったことは、Smalltalk-72 で当初からクラスがメソッドホルダとしてしか位置づけられていなかったことからも明らかです。まあ、いっかんして変数に型がな…

クラス指向

OOP

気付けば再三、ビアルネ・ストラウストラップの「抽象データ型のスーパーセット」としてのオブジェクト指向を簡単にするために「クラス指向」などと言ってしまっていますが、この言い換えには語弊がありそうです。ストラウストラップ本人は、オブジェクト指…

Matz にっきの LL Weekend メモ

…によると、林さんの Squeak/Smalltalk を駆っての nQueen 対戦は、Gauche/Scheme、Ruby、Python というそうそうたるメンバー相手に負けなし? っていうか全戦全勝? でありますか。これで頭の固いペコポン人どもも、その認識を改め、「Smalltalk? 使ってい…

本日のトリビア

OOP

構造化プログラミングについて著作としてまとめられたのは、 1960年代も終わりになってから。 へぇ。すくなくとも ALGOL-58 より前の 1950 年代かと思っていたよ…。構造化定理の論文はいつなんだろう。

構造化定理と構造化プログラミング

OOP

すべてのアルゴリズムは、連続、選択、反復の3つの構造で記述可能である、という話と構造化プログラミングにおける“構造化”は同じだと思いこんでいたんですが、遅まきながらダイクストラの「Notes on Structured Programming (PDF)」を読んでみると、構造化…

ピンソン本

こと「Smalltalk:オブジェクト指向プログラミング」ですが、絶版だったんですね。某所で薦めようとして調べているうちに気づきました。手続き的プログラミングと構造化プログラミングを取り違えているオブジェクト指向の導入部を除けば、無駄が少…

本日のトリビア

OOP

"Object-oriented programming versus abstract data types."(PDF)の著者、 ウィリアム・クック(William Randall Cook)は、 AppleScript の作者 へぇ、へぇ、へぇ、へぇ、へぇ、へぇ。トリビアというよりは、意外なところつながり、かな。 それにしては、A…

ちなみに…

OOP

ケイの“メッセージ指向”とストラウストラップの“クラス指向”と呼ぶべきオブジェクト指向のほかに、もうひとつお気に入り(?)なのはクックの“手続きによる抽象化手法”としてのオブジェクト指向です。ストラウストラップが抽象データ型の延長線上にオブジェクト…

eToys はオブジェクト指向か

オブジェクト指向の定義というといつも思い出すのは、eToys に悪態をついて「こんなのオブジェクト指向じゃない」とか言ったところ、おおしまさんから思わぬつっこみが入って、びびってそのまま引っ込めてしまったこれのこと。 当時はメッセージ送信メタファ…

論外というのはうかつだったかもしれませんね

OOP

真意は、そのようになんの但し書きもなく教える人に対しての皮肉だったのですが、そう教える人がいる以上、それを信じる人もいるわけで、そうした向きには“論外”と言われると違和感を感じるかも(^_^;)。ただ、単にクラスとオブジェクト(インスタンス)を使…