契約による設計(DbC)メイヤーさんの講演Part1 第80回先端ソフトウェア科学・工学に関するGRACEセミナー
をメモメモ(英語の講演だったので、間違っている所が多数あると思う。その点、割り引いてみてね!)
メイヤーさんの本、オブジェクト指向入門を訳した酒匂さんが来ていて(最前列にいる)、メイヤーさんと握手していた。
■コンテキストの紹介 石川先生から
・グレースセンターのグレースセミナー 80回
・チューリッヒ工科大学、Eiffel,DbC
・ACM ソフトウェアシステムアワードでeffel
・オブジェクト指向の大御所
・最近、アジャイル
・いろんなところで講演
・今回は並行プログラミング
■石川先生、吉岡先生、他一人で機材調整中
メイヤーさんは、席外してる
■Concurrent Programming for non-heroes
・雪のせいで遅れた(冗談です)
・バックグラウンド
US National Academy of Science
Heroic programmers:並列
→ユビキタスに関係
・Eiffel
・コンカレントプログラムの今
哲学者の食事
シンクロさせるのにセマフォ
・ダイクストラ68 Goto が有害
→概念的なギャップ(GoToがあると)
プログラミングと実際の実行間のギャップ
・他の例:銀行のtransfer(振り込みかなあ?)
3つのアカウントを考える
(Jane,Jil,Joan)
100 0 0
聞くも涙の物語(メイヤー先生、ハンカチ出して)
0 100 0
-100 0 100
→コンフリクト起こる
・heroesバージョンだとうまくいく?
動的実行
南山大学でしゃべった
The inability to reason from APIs
・ジョブをすると
スタティックコントラクト
ダイナミックコントラクト
事後条件
・1人目 事前条件満たす
・2人目 事前条件を満たすが・・・
→相互作用が悪さする:並列処理だと
この講義のスコープ
コンカレントプログラムは「めっしー」
プログラミングにおける有利さ
・構造化プログラミングと
・オブジェクト方法論
抽象化 OK
バグ防ぐ OK
:
構造の再構成(構造からのぞく):構造化ではできない
などなど。
・4つのリスク
Data race
Deadlock
Starvation
悪いアサンプションかなあ(4つめ書ききれなかった)
選択:SCOOPモデル
静的タイプ
動的データ
インヘリタンス
プロセスの選択
シーケンシャル;1つのプロセス
コンカレント:複数プロセス
選択3;オブジェクトの構造をマップ
ロボットの例
リージョン
選択3の結果
選択4:
シーケンシャルな視点:O-O x.r(a) A→B
do body end
コンカレント
lockがドイツ語なまりだとlogになる
x,r(a) ろっくしていたら?
選択5:
必要なオブジェクト
x.r(a,b,c)→排他的アクセスでa,b,c:DataRaceの保証
(ごめん、知らぬ間に6抜けた)
選択7:ブロッキング:シンクロナイズ
重要なポイント
1 x:T 昔のタイプ
2 x:(ごめん、かけなかった) SCOOP
例:Hexapod robot
・6つの足 2つのグループ
・SCOOPバージョン
requireがある
相互作用させないために、Waitさせる?
→ロックと言わない(概念はそうだけど)
哲学者の食事で
separate 右と左
アプリケーション:ロボット
SCOOPの言語
SCOOPまとめ
・o-oモデリング
・DataRaceがないこと保証
・公平性
そのたもろもろ、いいことあり
(時間だけど)質問たーいむ
2つ
後半
・哲学者の食事は、他の方法でも分けられるよね
→なんとかのほうほうをつかった??
(石川先生に)つづける?(質問した人)つづけよう
つづきます
・こぴぺについて
・スイス工科大の
歴史
EVE:検証
スタティックテクニック ダイナミックテクニック
Eiffel 検証環境
検証(ダイナミック)
オートテスト
オートフィックス
Software process agile method (新しい本のこと)
言語
そのほかの活動など・・
教育
大学で
MOOCS edx
http://se.ethz.ch
http://codeboard.io
Java,Python,C++とかでツール
http://eiffel.org
【わかったこと】
メイヤーさんは並列処理のheroesというのを研究していて
そこでSCOOPというのがでてくる
こいつで、条件を定義するようだ
をメモメモ(英語の講演だったので、間違っている所が多数あると思う。その点、割り引いてみてね!)
メイヤーさんの本、オブジェクト指向入門を訳した酒匂さんが来ていて(最前列にいる)、メイヤーさんと握手していた。
■コンテキストの紹介 石川先生から
・グレースセンターのグレースセミナー 80回
・チューリッヒ工科大学、Eiffel,DbC
・ACM ソフトウェアシステムアワードでeffel
・オブジェクト指向の大御所
・最近、アジャイル
・いろんなところで講演
・今回は並行プログラミング
■石川先生、吉岡先生、他一人で機材調整中
メイヤーさんは、席外してる
■Concurrent Programming for non-heroes
・雪のせいで遅れた(冗談です)
・バックグラウンド
US National Academy of Science
Heroic programmers:並列
→ユビキタスに関係
・Eiffel
・コンカレントプログラムの今
哲学者の食事
シンクロさせるのにセマフォ
・ダイクストラ68 Goto が有害
→概念的なギャップ(GoToがあると)
プログラミングと実際の実行間のギャップ
・他の例:銀行のtransfer(振り込みかなあ?)
3つのアカウントを考える
(Jane,Jil,Joan)
100 0 0
聞くも涙の物語(メイヤー先生、ハンカチ出して)
0 100 0
-100 0 100
→コンフリクト起こる
・heroesバージョンだとうまくいく?
動的実行
南山大学でしゃべった
The inability to reason from APIs
・ジョブをすると
スタティックコントラクト
ダイナミックコントラクト
事後条件
・1人目 事前条件満たす
・2人目 事前条件を満たすが・・・
→相互作用が悪さする:並列処理だと
この講義のスコープ
コンカレントプログラムは「めっしー」
プログラミングにおける有利さ
・構造化プログラミングと
・オブジェクト方法論
抽象化 OK
バグ防ぐ OK
:
構造の再構成(構造からのぞく):構造化ではできない
などなど。
・4つのリスク
Data race
Deadlock
Starvation
悪いアサンプションかなあ(4つめ書ききれなかった)
選択:SCOOPモデル
静的タイプ
動的データ
インヘリタンス
プロセスの選択
シーケンシャル;1つのプロセス
コンカレント:複数プロセス
選択3;オブジェクトの構造をマップ
ロボットの例
リージョン
選択3の結果
選択4:
シーケンシャルな視点:O-O x.r(a) A→B
do body end
コンカレント
lockがドイツ語なまりだとlogになる
x,r(a) ろっくしていたら?
選択5:
必要なオブジェクト
x.r(a,b,c)→排他的アクセスでa,b,c:DataRaceの保証
(ごめん、知らぬ間に6抜けた)
選択7:ブロッキング:シンクロナイズ
重要なポイント
1 x:T 昔のタイプ
2 x:(ごめん、かけなかった) SCOOP
例:Hexapod robot
・6つの足 2つのグループ
・SCOOPバージョン
requireがある
相互作用させないために、Waitさせる?
→ロックと言わない(概念はそうだけど)
哲学者の食事で
separate 右と左
アプリケーション:ロボット
SCOOPの言語
SCOOPまとめ
・o-oモデリング
・DataRaceがないこと保証
・公平性
そのたもろもろ、いいことあり
(時間だけど)質問たーいむ
2つ
後半
・哲学者の食事は、他の方法でも分けられるよね
→なんとかのほうほうをつかった??
(石川先生に)つづける?(質問した人)つづけよう
つづきます
・こぴぺについて
・スイス工科大の
歴史
EVE:検証
スタティックテクニック ダイナミックテクニック
Eiffel 検証環境
検証(ダイナミック)
オートテスト
オートフィックス
Software process agile method (新しい本のこと)
言語
そのほかの活動など・・
教育
大学で
MOOCS edx
http://se.ethz.ch
http://codeboard.io
Java,Python,C++とかでツール
http://eiffel.org
【わかったこと】
メイヤーさんは並列処理のheroesというのを研究していて
そこでSCOOPというのがでてくる
こいつで、条件を定義するようだ