トップページ⇒tech
281コメント72KB

オブジェクト指向言語Eiffelを学ぶ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
多重継承と総称をサポートする言語Eiffelを学ぼう!

http://www.gembook.jp/html/moin/moin.cgi/EiffelLanguage

class HELLO create make
feature
  make is
    do
      print("Hello World%N")
    end
end
0231デフォルトの名無しさんNGNG
「OOPの次はAOPだそうですね?」スレに貼ってあった。
http://oo2003.it.nanzan-u.ac.jp/program_euc.txt

基調講演者がBertrand Meyerのようです。
0232デフォルトの名無しさんNGNG
うへ、もう明日からじゃんか。

もっと前に知りたかった・・・
0233デフォルトの名無しさんNGNG
漏れは即決でスケジュールに入れたもーん・・・
但し13:00からのミーティングが予定通りに終わらないと
・・・なんともはやイケナイのだが・・・。
0234デフォルトの名無しさんNGNG
くそ。行けない上に丸一日ネットワーク落ちてたし・・・。

>>233
行けたなら報告きぼんしたい。
0235デフォルトの名無しさんNGNG
俺にレポートせよとおっしゃる?無理ぽ。
Eiffelは、まぁ、Design by Contract 入れた、普通のOO言語だな、
というのが漏れの印象。
8年前にNEXTSTEP買ったけど、当時も今もまるで興味が沸かない。
あと、質疑応答が結構おもろかった。

いわく、
・Design by Contract は、古典論理で逝けますか。YES
・post condition を分析に役立つ概念としていますが、
 それは(形式仕様による)プログラム定義とは見なせませんか?No
・OOPの今後(の発展)はどーよ?
 1)OO技術自体の洗練がどーたらこたら
 2)数学的概念や形式的手法の導入による、厳密化
 3)ObjectStoreの活用(ODB,ORDB,O-Rmapping等)
・AOPはどーよ?
 Aspect は、えー、(以下10分近く長ーい説明)
 Refactoringによるプログラミングの等価変換すら認めない人がいる。
 アスペクトでも等価変換の概念が必要だ。(脳内妄想要約)
・(主旨のよくわからん質問。Contractのパターン化?)
 最初の簡単な質問に答えた後、延々10分近く長ーい説明。

とにかくパワフルなオヤジで、英語がろくに判らない漏れでも、
口調と単語でおぼろげな意味が理解できてしまう、という
情熱的な教育者+事業家タイプ、と判定しますた。
Bertland Meyer程の人でも、アカデミックでディープな話題よりも、
自社開発環境の特徴を延々説明してしまうあたりは、
ソフトウェア技術者の佐賀を感じて、なかなか好感が持てますた。

最後の質疑で、主旨不明の質問に延々回答するバートランドたん、
「あの人質問の意図も判らずに回答してるよ(w」ってな反応もあったけど(w
明日の基調講演もガンバ??バートランドたん
0236デフォルトの名無しさんNGNG
>>235
ども。
Eiffel自体は調べれば分かるんで、まさにMeyer氏の
人為りとか質疑応答とかが知りたかったんです。

ところで、特別チュートリアルのみの参加ですか?
0237デフォルトの名無しさんNGNG
8/20 10:30-12:30 基調講演「Trusted Components」B.Meyer クル━━(・∀・)━━!!!
0238デフォルトの名無しさんNGNG
「契約」がようわからん。
0239デフォルトの名無しさんNGNG
よーするにassert
0240デフォルトの名無しさんNGNG
事前条件ってArgumentException投げたりして
普通のブロックの先頭に取り込まれるようになってきたね。
0241デフォルトの名無しさんNGNG
>>238
オブジェクトに対して何か仕事を任せるわけだが、
任せる方 (caller) も任される方 (callee) が仕事をしやすいように
作法を守ってやりましょうってこと。
例えば、負の数は寄越さないでねという条件で契約したんだから、
負の数は寄越すなごるぁと。
実装的にはアサートになる。

硬く言えば、入出力されるデータとオブジェクトの内部状態の
条件を明示することで、いわゆるインタフェイス不整合の問題など
を回避するための手法。

たぶん。
0242デフォルトの名無しさんNGNG
Pascalの範囲型みたいな形で、
制約条件を型の一部として取り扱うのは、
もう流行らないのでつか?

 動的型付け>>>>>>静的型付け

(w
0243デフォルトの名無しさんNGNG
Java のフレームワークはその一種だと思うけどねえ。
0244デフォルトの名無しさんNGNG
>>243
意味不明。皿仕上げしてよかとですか?
0245デフォルトの名無しさんNGNG
型による制約を上手く利用しているってこと。
0246デフォルトの名無しさんNGNG
>>245
やっぱ、意味不明。
Javaのフレームワークと何の関係が。
0247デフォルトの名無しさんNGNG
Java でも DbC を記述できるプリプロセッサがあったし、
1.4 で Assertion が追加されたけれど、
制約条件を書くのはコストが高いのであんまり使われてない。
代わりに何が使われているかというと、型による制約を利用したデザインパターンと
それを元に構築されるフレームワークじゃないかね、ってこと。
0248デフォルトの名無しさんNGNG
>>247
型による制約を利用したデザインパターンって(!)
静的な型付けを使ったら、静的な制約しか記述できないよね。
動的な片付けを使ったら、表現力は増すけど、言語の型機能のサポートは期待できないよね。

ニュアンスはよくわかるんだけど、
今更、型機能(ポリモルフィズム?)を使ったDbCって、
一体何をされてるんですか?

確かに>>247のおっしゃるように、表明=実装みたいな立場でDbC扱えれば、
表明の手間とオーバーヘッドを削減できるわけだけど。
DbCの立場では、表明と実装を分離しておく事が重要なわけで、
それは、OOA/OODの概念モデルと実装モデルの分離みたく、
異なる観点から見た二つの層を、層境界でマッピングさせる(BCEみたいな感じ)
事に意義があるんじゃないか、と。

#Eiffelの親玉は、表明と実装を混在させるのを嫌ってるみたいだった。

0249デフォルトの名無しさんNGNG
一応GoFとDbCに関してのこんな本があるんだけど、関係あるかな

デザインパターンと契約
http://www.pearsoned.co.jp/washo/object/wa_obj47-j.html
0250デフォルトの名無しさんNGNG
うん、その本この板かとなりの板で紹介した事ある(漠
0251デフォルトの名無しさんNGNG
俺、正直、静的なOOPLって性能に厳しい要求があるときでないと使う
必要ないと思うんだけど、どうかなあ。

動的なOOPLでプロトタイピングして、性能不足なら最適化し、それで
も性能不足なら静的なOOPLで書き直すってのが結局早いと思うんだ
が。
0252デフォルトの名無しさんNGNG
>>251
静的型付け vs 動的型付け みたいなもんじゃないの?
適材適所だと思う。
0253デフォルトの名無しさんNGNG
おれは、大切なプログラムにはオブジェクト指向は使わんよw
0254デフォルトの名無しさんNGNG
>>253
なんで?
0255デフォルトの名無しさんNGNG
理解できてないモノを、大切なことに使うわけないでしょ。
0256デフォルトの名無しさんNGNG
理解できたら使うってこと?
0257デフォルトの名無しさんNGNG
使うんじゃない?たぶん。
0258デフォルトの名無しさんNGNG
なんで理解できないまま放置してるの?
1)現在使っている言語で十分。他の言語を詳細に検証する手間などかけてられない。
2)オブジェクト指向なんて飾りなんです。お偉いさんにはそれがわからないんです。
3)小規模なプログラムしか書かないので再利用性などに関心はない。
4)アセンブラしか信用できない。
5)その他
0259デフォルトの名無しさんNGNG
253 != 255 == 257 == 259

従って漏れの答えは 5) 漏れは使うが他人のことは知らん。
0260デフォルトの名無しさんNGNG
Effel

説明抜きで絶賛する記述と「無視」がほとんど。
ここまで両極端な言語って珍しい。

外野からみると「実用性無視の言語マニア向け」って印象がある。
説得力のある解説って無いの?
「疑問をぶつけるのはEffelをマスターしてからにしろ!」のような痛いの意外を歓迎。
0261デフォルトの名無しさんNGNG
>260
Effelって何?
0262デフォルトの名無しさんNGNG
age
0263デフォルトの名無しさんNGNG
これはよいものだ。
http://sourceforge.net/softwaremap/trove_list.php?form_cat=166
と、彼は言った。
0264デフォルトの名無しさんNGNG
SmartEiffel2.0がインストールできないんだけど
だれかおせーて。Windowsです。
0265デフォルトの名無しさんNGNG
さて、どう答えて良いものやら。
0266デフォルトの名無しさんNGNG
「実用性無視の言語マニア向け」
これで大体あってると思うけど、手軽に使える実装がなかったのが痛い
PASCALと似たような運命を辿りそうだ
SmartEiffel に期待 age
0267デフォルトの名無しさんNGNG
さげちゃったよ
0268デフォルトの名無しさんNGNG
つうか、上げるなよ。
0269デフォルトの名無しさんNGNG
SmartEiffel2.0でSCOOP使うとコンパイル通らん・・・
0270デフォルトの名無しさんNGNG
まだβだし。
0271デフォルトの名無しさんNGNG
SmartEiffel2.0Release記念age
0272デフォルトの名無しさんNGNG
OOPLって、MSがMFCとVBを作った時点で、理念から理想から実装まで、
ぐちゃぐちゃにされたような気がするが...個人的意見。
0273デフォルトの名無しさんNGNG
そりゃ、MSを買いかぶりすぎだ。w
0274デフォルトの名無しさんNGNG
OO-PerlやOO-COBOLなんかもなんでわざわざOOすんの?って感じ
0275test ◆.CzKQna1OU NGNG
あげてみる
0276デフォルトの名無しさんNGNG
Eiふぇl最強!!!>>>>>Rうby>>>C>>>C++>>>>>Pearl
0277デフォルトの名無しさんNGNG
>>276
はあ??perl+OOが至上至宝至聖最強だろ。
0278デフォルトの名無しさんNGNG
0279デフォルトの名無しさんNGNG
エッフェルと読むのなら 「eiffel大作戦」 というダジャレは成立しないんだな。
0280デフォルトの名無しさん05/02/11 07:33:12
SmartEiffel 2.1 release
0281デフォルトの名無しさん05/02/11 19:12:53
age
■ このスレッドは過去ログ倉庫に格納されています