オブジェクト指向入門 第2版再読 ― 2007年03月17日 00時39分07秒
ASAHIネット(http://www.asahi-net.or.jp)のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
http://iiyu.asablo.jp/blog/2007/01/20/1126599
オブジェクト指向入門 第2版
http://iiyu.asablo.jp/blog/2007/02/20/1197119
オブジェクト指向入門 第2版(その2)
で紹介した
http://www.amazon.co.jp/exec/obidos/ASIN/4798111112/showshotcorne-22/ref=nosim
バートランド・メイヤー著, 酒匂寛訳「オブジェクト指向入門 第2版 原則・
コンセプト」
昼休みなど時間が余ったときにちょこちょこ読んでる。第2版だが再読とい
うことになる。
読むと20年前と違って、すいすいわかるね。
少しはおれも成長してるじゃん。\(^O^)/
20年でたったそれだけかよって感じだけどね。
特に問題意識はよくわかる。実際に仕事としてソフトウェア開発を長くやっ
ていると、設計や品質管理などで、どうしてだめなのか、何が足りないか、何
が必要かなどというのが、昔と違って、自らの体験、経験として頭じゃなくて
体でわかってるから、すこすこ読めちゃう。
それにしても、こんなに徹底していたかなあ。もう原理原則、言葉の定義か
ら、みっちりですね。
メイヤー先生が設計した、Eiffelは、ホーア流の意味論をプログラミング言
語に必須のものとして取り入れていたことで有名ですが、その手法は、「契約
による設計(Design By Contract(DBC)」として有名です。
20年前は、実際に動かせる無料の処理系なんかなかったけど、いまはありま
すね。いや、ほんといい時代。
日本のWikipediaのEiffelに関する記述は、しょぼくって、しかも、Sather
をEiffelをベースにCを取り入れたなんておかしなことが書いてあったので意
見をつけておきましたが、英語Wikipediaの記述はいいですね。
SatherはC化じゃなくて、関数型言語化したものなんですよね。おれ的には
シンタックスはともかく、心はLisp化したEiffelといいたいところだけど。^^;
http://en.wikipedia.org/wiki/Eiffel_(programming_language)
これやECMAの言語仕様書をみると、Agentなんてのが入っているんです。昔、
なかったでしょう? これ、Lispのクロージャですね。やっぱ、だんだんそう
なるのか。^^;
実装は、Wikipediaの最後のリンクにいろいろありますが、メイヤー先生の
会社
http://www.eiffel.com/
Eiffel Sfotware(昔は、 Interactive Software Engineering(ISE)という会社
でした)
も、オープンソースで使うなら無料でいいよというEiffelの実装も配ってます
ね。
Emacs頼みじゃない統合環境なのが太っ腹ですね。
http://eiffelsoftware.origo.ethz.ch/index.php/Main_Page
EiffelStudio Integrated Development Environment
いまやECMAにもISOにもなってるんですね。知らなかった。どちらも同じ仕
様です。だから、ECMAの仕様をダウンロードして読めばいいです。中身は同じ
でレイアウトが違うなんてことが書いてあります。
で、面白いのが、
http://smarteiffel.loria.fr/
Smart Eiffel
というオープンソース実装の態度。
ECMAやISOの標準仕様のEiffelを実装したくないと。なぜなら、Eiffelらし
さがなくなっていくと。だんだん実用になれば汚くなっていく。あのピュアな
青春を失いたくないという気持ちなんでしょうかね。^^;
DBCですが、メイヤー先生は理論屋でもあるので、仕様記述や意味論の本も、
昔、書いています。
原書は、
http://www.amazon.com/Introduction-Programming-Language-English-Teaching/dp/0134985028/
Bertrand Meyer著「Introduction to the Theory of Programming Language」
です。翻訳が出てたような気がして調べたら、やはり、酒匂さんの訳でありま
すね。
http://www.amazon.co.jp/exec/obidos/ASIN/4756103170/showshotcorne-22/ref=nosim
バートランド・メイヤー著, 酒匂寛訳「プログラミング言語理論への招待―正
しいソフトウェアを書くために」
ですね。
ぼくのブログにある仕様記述の話は、
http://www.google.com/custom?domains=iiyu.asablo.jp%3Bwww.asahi-net.or.jp&q=%8Ed%97l%8BL%8Fq&sa=%8C%9F%8D%F5&sitesearch=iiyu.asablo.jp&client=pub-8265382438304350&forid=1&ie=Shift_JIS&oe=Shift_JIS
で検索してみてください。
で、DBCのこと。
http://en.wikipedia.org/wiki/Design_by_contract
をみたら、いろんな言語でなんとかしようとやってるのね。
Perlのなんか、全然別のシンタックスのようですね。^^;
個人的に面白いと思うのは、SatherとLispですね。
http://www.icsi.berkeley.edu/~sather/
Sather
は、前述のようにEiffelベースですから、DBCをやれるのは当然ですね。
http://www.muc.de/~hoelzl/tools/dbc/dbc-intro.html
Common LispによるDBC
は、CLOS(Common Lisp Object System)のdefclassやdefmethodをマクロで再定
義してますね。例外のハンドリングなども含めて、たったこれくらいでできち
ゃうものなんですね。頭いい人はいいなあ。
PLT Scheme(Dr. Scheme)にもあるというから探したら、
http://download.plt-scheme.org/doc/360/html/mzlib/mzlib-Z-H-12.html
ですね。
でも、Common LispのDBCに比べて、どう書けばいいのか、おれ、わかりませ
ん。頭悪いとだめね(泣)。
---
http://iiyu.asablo.jp/blog/2007/01/20/1126599
オブジェクト指向入門 第2版
http://iiyu.asablo.jp/blog/2007/02/20/1197119
オブジェクト指向入門 第2版(その2)
で紹介した
http://www.amazon.co.jp/exec/obidos/ASIN/4798111112/showshotcorne-22/ref=nosim
バートランド・メイヤー著, 酒匂寛訳「オブジェクト指向入門 第2版 原則・
コンセプト」
昼休みなど時間が余ったときにちょこちょこ読んでる。第2版だが再読とい
うことになる。
読むと20年前と違って、すいすいわかるね。
少しはおれも成長してるじゃん。\(^O^)/
20年でたったそれだけかよって感じだけどね。
特に問題意識はよくわかる。実際に仕事としてソフトウェア開発を長くやっ
ていると、設計や品質管理などで、どうしてだめなのか、何が足りないか、何
が必要かなどというのが、昔と違って、自らの体験、経験として頭じゃなくて
体でわかってるから、すこすこ読めちゃう。
それにしても、こんなに徹底していたかなあ。もう原理原則、言葉の定義か
ら、みっちりですね。
メイヤー先生が設計した、Eiffelは、ホーア流の意味論をプログラミング言
語に必須のものとして取り入れていたことで有名ですが、その手法は、「契約
による設計(Design By Contract(DBC)」として有名です。
20年前は、実際に動かせる無料の処理系なんかなかったけど、いまはありま
すね。いや、ほんといい時代。
日本のWikipediaのEiffelに関する記述は、しょぼくって、しかも、Sather
をEiffelをベースにCを取り入れたなんておかしなことが書いてあったので意
見をつけておきましたが、英語Wikipediaの記述はいいですね。
SatherはC化じゃなくて、関数型言語化したものなんですよね。おれ的には
シンタックスはともかく、心はLisp化したEiffelといいたいところだけど。^^;
http://en.wikipedia.org/wiki/Eiffel_(programming_language)
これやECMAの言語仕様書をみると、Agentなんてのが入っているんです。昔、
なかったでしょう? これ、Lispのクロージャですね。やっぱ、だんだんそう
なるのか。^^;
実装は、Wikipediaの最後のリンクにいろいろありますが、メイヤー先生の
会社
http://www.eiffel.com/
Eiffel Sfotware(昔は、 Interactive Software Engineering(ISE)という会社
でした)
も、オープンソースで使うなら無料でいいよというEiffelの実装も配ってます
ね。
Emacs頼みじゃない統合環境なのが太っ腹ですね。
http://eiffelsoftware.origo.ethz.ch/index.php/Main_Page
EiffelStudio Integrated Development Environment
いまやECMAにもISOにもなってるんですね。知らなかった。どちらも同じ仕
様です。だから、ECMAの仕様をダウンロードして読めばいいです。中身は同じ
でレイアウトが違うなんてことが書いてあります。
で、面白いのが、
http://smarteiffel.loria.fr/
Smart Eiffel
というオープンソース実装の態度。
ECMAやISOの標準仕様のEiffelを実装したくないと。なぜなら、Eiffelらし
さがなくなっていくと。だんだん実用になれば汚くなっていく。あのピュアな
青春を失いたくないという気持ちなんでしょうかね。^^;
DBCですが、メイヤー先生は理論屋でもあるので、仕様記述や意味論の本も、
昔、書いています。
原書は、
http://www.amazon.com/Introduction-Programming-Language-English-Teaching/dp/0134985028/
Bertrand Meyer著「Introduction to the Theory of Programming Language」
です。翻訳が出てたような気がして調べたら、やはり、酒匂さんの訳でありま
すね。
http://www.amazon.co.jp/exec/obidos/ASIN/4756103170/showshotcorne-22/ref=nosim
バートランド・メイヤー著, 酒匂寛訳「プログラミング言語理論への招待―正
しいソフトウェアを書くために」
ですね。
ぼくのブログにある仕様記述の話は、
http://www.google.com/custom?domains=iiyu.asablo.jp%3Bwww.asahi-net.or.jp&q=%8Ed%97l%8BL%8Fq&sa=%8C%9F%8D%F5&sitesearch=iiyu.asablo.jp&client=pub-8265382438304350&forid=1&ie=Shift_JIS&oe=Shift_JIS
で検索してみてください。
で、DBCのこと。
http://en.wikipedia.org/wiki/Design_by_contract
をみたら、いろんな言語でなんとかしようとやってるのね。
Perlのなんか、全然別のシンタックスのようですね。^^;
個人的に面白いと思うのは、SatherとLispですね。
http://www.icsi.berkeley.edu/~sather/
Sather
は、前述のようにEiffelベースですから、DBCをやれるのは当然ですね。
http://www.muc.de/~hoelzl/tools/dbc/dbc-intro.html
Common LispによるDBC
は、CLOS(Common Lisp Object System)のdefclassやdefmethodをマクロで再定
義してますね。例外のハンドリングなども含めて、たったこれくらいでできち
ゃうものなんですね。頭いい人はいいなあ。
PLT Scheme(Dr. Scheme)にもあるというから探したら、
http://download.plt-scheme.org/doc/360/html/mzlib/mzlib-Z-H-12.html
ですね。
でも、Common LispのDBCに比べて、どう書けばいいのか、おれ、わかりませ
ん。頭悪いとだめね(泣)。
Re: 将棋ネタ、ボナンザ、理研が被験者募集 ― 2007年03月17日 10時09分31秒
ASAHIネット(http://www.asahi-net.or.jp)のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
ちょっと調べてみたらオセロ(リバーシ)はまだ解き明かされ
ちゃいないのね。
ただ、将棋や囲碁と違って、両者が最善手を打って引き分ける
定石はいくつか発見されているようだし、後手が有利になるの
ではないかという見通しもあるみたい。
実家にあるオセロ盤はいまだに活躍しているらしい。孫を相手
に母親がいい勝負をしているとか。定石とか完全読みとか知ら
ないほうが楽しく遊べるような気はする。
--
つばめどん
==
標題: Re: 将棋ネタ、ボナンザ、理研が被験者募集
---
olfaさんから。
--- ここから ---
中村様へ。
Show's Hot Cornerを拝見しまして森田オセロが話題になっていたものですか
ら
なつかしい記憶がよみがえりました。
PC-8001で森田オセロを相手に遊んでいましたけれど結局全敗でしたね。
1回だけ四隅を取ったので「こりゃイケる!」と期待したら後半入ってコンピ
ュータが思考1時間(その間に夕飯たべました)、ジリジリ押されて数コマ差
で負けてしまいました。
きっと長時間の思考のときに読み切っていたのでしょうね。
--- ここまで ---
ぼくはMZ-80Cかな、8bit CPUでクロックが数MHz(GHzじゃない!), RAMが
48KB(MBじゃない!)で、ある作者(名前を失念!失礼)のオセロをやりましたが、
残り10数手くらいから、完全先読みなんですよね。
だから、その前に負けていたらもう絶対に勝てない。勝っていても何か失敗
したらもう勝てない。
野球でいえば、相手に絶対的ストッパーがいるので、7回までに負けていた
ら8回9回はパーフェクトに抑えられて負け。だから、野球が9回じゃなくて7回
までの勝負になっているような感じ。
いまのハードウェアだったら、どれくらい手前から完全先読みできるんでし
ょうね。
オセロや囲碁や将棋に比べて、変化は少ないし、ゲームが進むにつれ着手で
きるところが減るから、どんどん変化が少なくなりますよね。残り30手くらい
で完全先読みできるんだろうか。
そうすると野球でいえば、5回までに勝ってないとだめってことですね。^^;
中原さんから。
--- ここから ---
いつも「ホットコーナ」楽しく拝見しています。
最近将棋の話題が多いですね。私も少しは指しますので、なるほどと思うこと
が多いです。
ところで、将棋の場合、「定石」ではなくて「定跡」と表記するのが通常です。
「定石」は囲碁。IMEの誤変換だろうとは思いますが、老婆心まで。
--- ここまで ---
中原さん、ありがとうございます。優しいなあ。誤変換じゃなくて、おれの
無知です。
少しは指すなんて、またまたぁ。ほんとはアマ5段だったりしてね。\(^O^)/
将棋世界でも、ちゃんと定跡と表記していますね。
ということで、おれとつばめどんの分、ウェブとブログでは、文脈上、明ら
かに将棋の定跡なら「定跡」、囲碁やオセロのときは「定石」、社会通念上の
一般的定石は「定石」に修正します。
これをウェブとブログで読むときは、すでに修正済みのはず。
---
ちょっと調べてみたらオセロ(リバーシ)はまだ解き明かされ
ちゃいないのね。
ただ、将棋や囲碁と違って、両者が最善手を打って引き分ける
定石はいくつか発見されているようだし、後手が有利になるの
ではないかという見通しもあるみたい。
実家にあるオセロ盤はいまだに活躍しているらしい。孫を相手
に母親がいい勝負をしているとか。定石とか完全読みとか知ら
ないほうが楽しく遊べるような気はする。
--
つばめどん
==
標題: Re: 将棋ネタ、ボナンザ、理研が被験者募集
---
olfaさんから。
--- ここから ---
中村様へ。
Show's Hot Cornerを拝見しまして森田オセロが話題になっていたものですか
ら
なつかしい記憶がよみがえりました。
PC-8001で森田オセロを相手に遊んでいましたけれど結局全敗でしたね。
1回だけ四隅を取ったので「こりゃイケる!」と期待したら後半入ってコンピ
ュータが思考1時間(その間に夕飯たべました)、ジリジリ押されて数コマ差
で負けてしまいました。
きっと長時間の思考のときに読み切っていたのでしょうね。
--- ここまで ---
ぼくはMZ-80Cかな、8bit CPUでクロックが数MHz(GHzじゃない!), RAMが
48KB(MBじゃない!)で、ある作者(名前を失念!失礼)のオセロをやりましたが、
残り10数手くらいから、完全先読みなんですよね。
だから、その前に負けていたらもう絶対に勝てない。勝っていても何か失敗
したらもう勝てない。
野球でいえば、相手に絶対的ストッパーがいるので、7回までに負けていた
ら8回9回はパーフェクトに抑えられて負け。だから、野球が9回じゃなくて7回
までの勝負になっているような感じ。
いまのハードウェアだったら、どれくらい手前から完全先読みできるんでし
ょうね。
オセロや囲碁や将棋に比べて、変化は少ないし、ゲームが進むにつれ着手で
きるところが減るから、どんどん変化が少なくなりますよね。残り30手くらい
で完全先読みできるんだろうか。
そうすると野球でいえば、5回までに勝ってないとだめってことですね。^^;
中原さんから。
--- ここから ---
いつも「ホットコーナ」楽しく拝見しています。
最近将棋の話題が多いですね。私も少しは指しますので、なるほどと思うこと
が多いです。
ところで、将棋の場合、「定石」ではなくて「定跡」と表記するのが通常です。
「定石」は囲碁。IMEの誤変換だろうとは思いますが、老婆心まで。
--- ここまで ---
中原さん、ありがとうございます。優しいなあ。誤変換じゃなくて、おれの
無知です。
少しは指すなんて、またまたぁ。ほんとはアマ5段だったりしてね。\(^O^)/
将棋世界でも、ちゃんと定跡と表記していますね。
ということで、おれとつばめどんの分、ウェブとブログでは、文脈上、明ら
かに将棋の定跡なら「定跡」、囲碁やオセロのときは「定石」、社会通念上の
一般的定石は「定石」に修正します。
これをウェブとブログで読むときは、すでに修正済みのはず。
最近のコメント