Download presentation
Presentation is loading. Please wait.
1
マルチスレッド GUI モデル 小笠原啓 有限会社 IT プランニング
2
Page 2 ゴール マルチスレッドな GUI ライブラリを OCaml で。 動きのある UI は近頃必須なので、アニメーションを容易にする仕組みを導 入。 GUI 部品のイベント、見かけを自由にカスタマイズできるように。
3
Page 3 マルチスレッドと GUI スレッド間情報共有 共有メモリ、メッセージパッシング 描画はマルチスレッド化できない。 副作用は少ないほうがよい。
4
Page 4 Concurrent Cell CML スタイルのメッセージパッシングライブラリ (Ocaml) Event ライブラリの上に構築。 スレッドレスな ivar, mvar, mbox(queue) 。 GC も考慮した broadcast チャンネル。 widh_nack, timeout, future, rpc などの便利関数も実装 。
5
Page 5 動き(ビヘイビア. ‘a behavior )を状態の無限リストで表現。動きを宣言的 に記述できる。 ビヘイビアは合成可能(コンビネーター)。 over, fusion, insert, replace, loop イベントが起きたときにビヘイビアを変化させるコンビネーター。 react : bool event → (‘a behavior → ’a behavior) →‘a behavior → ’a behavior Reactive Programming 状態変化を f : ‘a→’a で記述して、 stream にする。 時間 離散的なタイムラインとみなせる。
6
Page 6 柔軟な GUI 部品 内部状態と表示内容とにずれがないよう、保障してくれる代わりに、イ ベント部分以外の動作を変更できない。 カスタム部品はゼロから作らなければならない。 従来の部品( Model-View-Control) 新しい設計の部品 イベントの受信と状態判定とロジックを一体化。(インタラクション) 子部品とインタラクションの集まりで一つの部品と定義。
7
Page 7 デモンストレーション
8
Page 8 Related and Future Work Related Work eXene Fudget(Gadget) FranTk Future Work CML スタイルのメッセージパッ シングを π 計算でエンコーディング 。 モデルチェックでデッドロック 回避。
9
Page 9 Web Site: www.itpl.co.jp Email: info@itpl.co.jp
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.