Soumettre la recherche
Mettre en ligne
データモデルの更新を効率よく検証するの並列可能性
•
0 j'aime
•
507 vues
Jiachen Yang
Suivre
データモデルの更新を効率よく検証するの並列可能性
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 73
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
オブジェクト指向入門6
オブジェクト指向入門6
Kenta Hattori
チェックリストと分割に基づく 網羅と使用テスト
チェックリストと分割に基づく 網羅と使用テスト
Jiachen Yang
Slides for Semantic Versioning versus Breaking Changes: A Study of the Maven ...
Slides for Semantic Versioning versus Breaking Changes: A Study of the Maven ...
Jiachen Yang
基于OpenNEbula的虚拟化服务器集群中节能 的研究
基于OpenNEbula的虚拟化服务器集群中节能 的研究
Jiachen Yang
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
Hironori Washizaki
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Hironori Washizaki
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
yamahige
機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns
Hironori Washizaki
Recommandé
オブジェクト指向入門6
オブジェクト指向入門6
Kenta Hattori
チェックリストと分割に基づく 網羅と使用テスト
チェックリストと分割に基づく 網羅と使用テスト
Jiachen Yang
Slides for Semantic Versioning versus Breaking Changes: A Study of the Maven ...
Slides for Semantic Versioning versus Breaking Changes: A Study of the Maven ...
Jiachen Yang
基于OpenNEbula的虚拟化服务器集群中节能 的研究
基于OpenNEbula的虚拟化服务器集群中节能 的研究
Jiachen Yang
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
ヒンシツ大学セミナー ゴール指向の測定と品質保証活動 -メトリクス解説およびGqm法のワークショップ-
Hironori Washizaki
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Hironori Washizaki
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
マトリックス型テキスト編集モデルによる編集操作ログの実際と分析方針
yamahige
機械学習デザインパターン Machine Learning Design Patterns
機械学習デザインパターン Machine Learning Design Patterns
Hironori Washizaki
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTURE Project
非技術者でもわかる(?)コンピュータビジョン紹介資料
非技術者でもわかる(?)コンピュータビジョン紹介資料
Takuya Minagawa
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
TomoyasuOkada
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Yasuharu Nishi
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
Koji Hasegawa
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
Hironori Washizaki
機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観
Hironori Washizaki
20180117_ICON技術セミナー4_常盤
20180117_ICON技術セミナー4_常盤
ICT_CONNECT_21
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
Masahiro Suzuki
japan teacher
japan teacher
peterjiang
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
Keiichiro Ono
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
Hironori Washizaki
地図を片手にアジャイル開発
地図を片手にアジャイル開発
Zenji Kanzaki
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
Tomoharu ASAMI
サブカルのためのWord2vec
サブカルのためのWord2vec
DeNA
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
分析・モニタリングのために作文活動を測定するシステムの設計
分析・モニタリングのために作文活動を測定するシステムの設計
yamahige
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
静岡大学情報学部 組込みシステムアーキテクト研究所
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
Hironori Washizaki
蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング
genroku
Contenu connexe
Similaire à データモデルの更新を効率よく検証するの並列可能性
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTURE Project
非技術者でもわかる(?)コンピュータビジョン紹介資料
非技術者でもわかる(?)コンピュータビジョン紹介資料
Takuya Minagawa
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
TomoyasuOkada
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Yasuharu Nishi
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
Koji Hasegawa
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
Hironori Washizaki
機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観
Hironori Washizaki
20180117_ICON技術セミナー4_常盤
20180117_ICON技術セミナー4_常盤
ICT_CONNECT_21
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
Masahiro Suzuki
japan teacher
japan teacher
peterjiang
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
Keiichiro Ono
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
Hironori Washizaki
地図を片手にアジャイル開発
地図を片手にアジャイル開発
Zenji Kanzaki
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
Tomoharu ASAMI
サブカルのためのWord2vec
サブカルのためのWord2vec
DeNA
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
分析・モニタリングのために作文活動を測定するシステムの設計
分析・モニタリングのために作文活動を測定するシステムの設計
yamahige
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
静岡大学情報学部 組込みシステムアーキテクト研究所
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
Hironori Washizaki
蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング
genroku
Similaire à データモデルの更新を効率よく検証するの並列可能性
(20)
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
非技術者でもわかる(?)コンピュータビジョン紹介資料
非技術者でもわかる(?)コンピュータビジョン紹介資料
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
Discriminative Deep Dyna-Q: Robust Planning for Dialogue Policy Learning
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観
20180117_ICON技術セミナー4_常盤
20180117_ICON技術セミナー4_常盤
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
深層生成モデルと世界モデル,深層生成モデルライブラリPixyzについて
japan teacher
japan teacher
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
地図を片手にアジャイル開発
地図を片手にアジャイル開発
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
サブカルのためのWord2vec
サブカルのためのWord2vec
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
分析・モニタリングのために作文活動を測定するシステムの設計
分析・モニタリングのために作文活動を測定するシステムの設計
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング
データモデルの更新を効率よく検証するの並列可能性
1.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 1/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Coexecutability for Efficient Verification of Data Model Updates MD 輪講 博士後期課程 3 年 楊 嘉晨 大阪大学大学院 コンピュータサイエンス専攻 楠本研究室 2015 年 07 月 30 日(木)
2.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 2/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 紹介と背景 出典と著者情報 背景と先行研究 動機の例 フォーマルモデル 並列実行可能性 並列実行可能性の検証器 評価実験 結論と今後の課題
3.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 3/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 出典と著者情報 Coexecutability for Efficient Verification of Data Model Updates¹ データモデルの更新を効率よく検証するの並列可能性 出典 ICSE 2015, Eng: Florence, Ita: Firenze フィレンツェ, イタリア 著者 Ivan Bocić, Tevfik Bultan 所属 Department of Computer Science, California 大, USA ¹Ivan Bocic and Tevfik Bultan. “Coexecutability for Efficient Verification of Data Model Updates”. In: Proceedings of the 37th International Conference on Software Engineering. ACM. 2015, pp. 744–754.
4.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 4/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 背景: MVC 構造のデータモデル アプリケーションを開発する際に MVC 構造でオブジェクトをデータベ ースに格納するのは一般的 Model データベースにアクセス View データをユーザーに提示 Controller ユーザーの操作を受理 Ruby on Rails (RoR) アプリの場合: ActiveRecord Object-Relational Mapping (ORM) ActionView HTML テンプレート Action コントローラの処理
5.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 4/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 背景: MVC 構造のデータモデル アプリケーションを開発する際に MVC 構造でオブジェクトをデータベ ースに格納するのは一般的 Model データベースにアクセス View データをユーザーに提示 Controller ユーザーの操作を受理 Ruby on Rails (RoR) アプリの場合: ActiveRecord Object-Relational Mapping (ORM) ActionView HTML テンプレート Action コントローラの処理
6.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 5/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 class User 2 has_many :users 3 has_many :projects 4 end 5 class Project 6 belongs_to :user 7 has_many :todos 8 has_many :notes 9 end 10 class Todo 11 belongs_to :user 12 belongs_to :project 13 end 14 class Note 15 belongs_to :project 16 end 1 class TodosController 2 def create 3 @project = Project.find(params[: project_id]) 4 @user = User.find(params[:user_id ]) 5 @todo = Todo.new 6 @todo.user = @user 7 @todo.project = @project 8 @todo.save! 9 respond_to (...) 10 end 11 end 12 class ProjectsController 13 def destroy 14 @project = Project.find(params[: project_id]) 15 @project.notes.each do |n| 16 n.delete 17 end 18 @project.delete 19 respond_to (...) 20 end 21 end
7.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 5/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 class User 2 has_many :users 3 has_many :projects 4 end 5 class Project 6 belongs_to :user 7 has_many :todos 8 has_many :notes 9 end 10 class Todo 11 belongs_to :user 12 belongs_to :project 13 end 14 class Note 15 belongs_to :project 16 end 1 class TodosController 2 def create 3 @project = Project.find(params[: project_id]) 4 @user = User.find(params[:user_id ]) 5 @todo = Todo.new 6 @todo.user = @user 7 @todo.project = @project 8 @todo.save! 9 respond_to (...) 10 end 11 end 12 class ProjectsController 13 def destroy 14 @project = Project.find(params[: project_id]) 15 @project.notes.each do |n| 16 n.delete 17 end 18 @project.delete 19 respond_to (...) 20 end 21 end
8.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 5/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 class User 2 has_many :users 3 has_many :projects 4 end 5 class Project 6 belongs_to :user 7 has_many :todos 8 has_many :notes 9 end 10 class Todo 11 belongs_to :user 12 belongs_to :project 13 end 14 class Note 15 belongs_to :project 16 end 1 class TodosController 2 def create 3 @project = Project.find(params[: project_id]) 4 @user = User.find(params[:user_id ]) 5 @todo = Todo.new 6 @todo.user = @user 7 @todo.project = @project 8 @todo.save! 9 respond_to (...) 10 end 11 end 12 class ProjectsController 13 def destroy 14 @project = Project.find(params[: project_id]) 15 @project.notes.each do |n| 16 n.delete 17 end 18 @project.delete 19 respond_to (...) 20 end 21 end
9.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 6/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究²: データモデルの不変式 Inductive Verification of Data Model Invariants for Web Applications todo は必ず project に関 連することを保証する不 変式: 1 invariant forall{ |todo| 2 not todo.project.empty? 3 } 先行研究で不変式の検証 器を提案しました • Action 実行前後に不 変式が満たすか ²Ivan Bocić and Tevfik Bultan. “Inductive verification of data model invariants for web applications”. In: Proceedings of the 36th International Conference on Software Engineering. ACM. 2014, pp. 620–631.
10.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 6/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究²: データモデルの不変式 Inductive Verification of Data Model Invariants for Web Applications todo は必ず project に関 連することを保証する不 変式: 1 invariant forall{ |todo| 2 not todo.project.empty? 3 } 先行研究で不変式の検証 器を提案しました • Action 実行前後に不 変式が満たすか ²Ivan Bocić and Tevfik Bultan. “Inductive verification of data model invariants for web applications”. In: Proceedings of the 36th International Conference on Software Engineering. ACM. 2014, pp. 620–631.
11.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 7/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究: 不変式の検証器³ Inductive Verification of Data Model Invariants for Web Applications 1 Action 定義文を書 き換える 2 書き換えたソース コードを実行し、 Abstract Data Store, ADS 抽象データストー を作る 3 ADS を First Order Logic, FOL 一階論理式 に変換する 4 FOL を既存の検証 器で検証する 1 def create_user_example 2 @user = User.build(params) 3 Project.all.each do |project| 4 if project.hiring? 5 @user.projects << project 6 end 7 end 8 @user.save! 9 respond_to(...) 10 end ³Christoph Weidenbach et al. “SPASS Version 3.5”. In: Automated Deduction–CADE-22. Springer, 2009, pp. 140–145.
12.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 7/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究: 不変式の検証器³ Inductive Verification of Data Model Invariants for Web Applications 1 Action 定義文を書 き換える 2 書き換えたソース コードを実行し、 Abstract Data Store, ADS 抽象データストー を作る 3 ADS を First Order Logic, FOL 一階論理式 に変換する 4 FOL を既存の検証 器で検証する 1 def create_user_example 2 ins_stmt(ins_asgn(:@user, User.build(param 3 ins_stmt(Project.all.each do |project| 4 ins_if( 5 project.hiring?, 6 ins_stmt(@user.projects << project), 7 nil 8 ) 9 end) 10 ins_stmt(@user.save!) 11 end ³Christoph Weidenbach et al. “SPASS Version 3.5”. In: Automated Deduction–CADE-22. Springer, 2009, pp. 140–145.
13.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 7/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究: 不変式の検証器³ Inductive Verification of Data Model Invariants for Web Applications 1 Action 定義文を書 き換える 2 書き換えたソース コードを実行し、 Abstract Data Store, ADS 抽象データストー を作る 3 ADS を First Order Logic, FOL 一階論理式 に変換する 4 FOL を既存の検証 器で検証する 1 def create_user_example 2 ins_stmt(ins_asgn(:@user, User.build(param 3 ins_stmt(Project.all.each do |project| 4 ins_if( 5 project.hiring?, 6 ins_stmt(@user.projects << project), 7 nil 8 ) 9 end) 10 ins_stmt(@user.save!) 11 end ³Christoph Weidenbach et al. “SPASS Version 3.5”. In: Automated Deduction–CADE-22. Springer, 2009, pp. 140–145.
14.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 7/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究: 不変式の検証器³ Inductive Verification of Data Model Invariants for Web Applications 1 Action 定義文を書 き換える 2 書き換えたソース コードを実行し、 Abstract Data Store, ADS 抽象データストー を作る 3 ADS を First Order Logic, FOL 一階論理式 に変換する 4 FOL を既存の検証 器で検証する ³Christoph Weidenbach et al. “SPASS Version 3.5”. In: Automated Deduction–CADE-22. Springer, 2009, pp. 140–145.
15.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 7/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究: 不変式の検証器³ Inductive Verification of Data Model Invariants for Web Applications 1 Action 定義文を書 き換える 2 書き換えたソース コードを実行し、 Abstract Data Store, ADS 抽象データストー を作る 3 ADS を First Order Logic, FOL 一階論理式 に変換する 4 FOL を既存の検証 器で検証する ³Christoph Weidenbach et al. “SPASS Version 3.5”. In: Automated Deduction–CADE-22. Springer, 2009, pp. 140–145.
16.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 7/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究: 不変式の検証器³ Inductive Verification of Data Model Invariants for Web Applications 1 Action 定義文を書 き換える 2 書き換えたソース コードを実行し、 Abstract Data Store, ADS 抽象データストー を作る 3 ADS を First Order Logic, FOL 一階論理式 に変換する 4 FOL を既存の検証 器で検証する ³Christoph Weidenbach et al. “SPASS Version 3.5”. In: Automated Deduction–CADE-22. Springer, 2009, pp. 140–145.
17.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 7/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究: 不変式の検証器³ Inductive Verification of Data Model Invariants for Web Applications 1 Action 定義文を書 き換える 2 書き換えたソース コードを実行し、 Abstract Data Store, ADS 抽象データストー を作る 3 ADS を First Order Logic, FOL 一階論理式 に変換する 4 FOL を既存の検証 器で検証する ³Christoph Weidenbach et al. “SPASS Version 3.5”. In: Automated Deduction–CADE-22. Springer, 2009, pp. 140–145.
18.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 8/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究問題点と改善した提案手法 先行研究の問題点:ループから得られた FOL を解くこと は困難, 即ちタイムアウトによる失敗しがち • FOL のみでループを表すのに非常に長くなる • 二回目の変数は一回目の値に依存することは有りうる • ループから得られた FOL は transitive closure 推移閉包になって状態爆発する FOL でループを処理する一般的なやり方:手作業でループ不 変式を与えて、状態爆発を収まる 改善した提案手法: 1 ループの各イテレーションが coexecutable 並列実行可能か否かを検証 • 並列実行可能性: 並列実行する結果 == 逐次実行する結果 2 並列実行可能なループのみに着目し、ループを洗練した FOL に変換する
19.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 8/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究問題点と改善した提案手法 先行研究の問題点:ループから得られた FOL を解くこと は困難, 即ちタイムアウトによる失敗しがち • FOL のみでループを表すのに非常に長くなる • 二回目の変数は一回目の値に依存することは有りうる • ループから得られた FOL は transitive closure 推移閉包になって状態爆発する FOL でループを処理する一般的なやり方:手作業でループ不 変式を与えて、状態爆発を収まる 改善した提案手法: 1 ループの各イテレーションが coexecutable 並列実行可能か否かを検証 • 並列実行可能性: 並列実行する結果 == 逐次実行する結果 2 並列実行可能なループのみに着目し、ループを洗練した FOL に変換する
20.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 8/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 先行研究問題点と改善した提案手法 先行研究の問題点:ループから得られた FOL を解くこと は困難, 即ちタイムアウトによる失敗しがち • FOL のみでループを表すのに非常に長くなる • 二回目の変数は一回目の値に依存することは有りうる • ループから得られた FOL は transitive closure 推移閉包になって状態爆発する FOL でループを処理する一般的なやり方:手作業でループ不 変式を与えて、状態爆発を収まる 改善した提案手法: 1 ループの各イテレーションが coexecutable 並列実行可能か否かを検証 • 並列実行可能性: 並列実行する結果 == 逐次実行する結果 2 並列実行可能なループのみに着目し、ループを洗練した FOL に変換する
21.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 9/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 紹介と背景 動機の例 逐次実行 並列実行 フォーマルモデル 並列実行可能性 並列実行可能性の検証器 評価実験 結論と今後の課題
22.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 10/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 動機の例: 逐次実行 1 class PostsController 2 def destroy_tags 3 ... 4 posts = Post.where(id: params[: post_ids]) 5 ... 6 posts.each do |p| 7 p.tags.destroy_all! 8 end 9 ... 10 end 11 end 0..* 0..* Post Tag p1 p2 p3 t1 t2 t3
23.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 10/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 動機の例: 逐次実行 1 class PostsController 2 def destroy_tags 3 ... 4 posts = Post.where(id: params[: post_ids]) 5 ... 6 posts.each do |p| 7 p.tags.destroy_all! 8 end 9 ... 10 end 11 end 0..* 0..* Post Tag p1 p2 p3 t2 t3
24.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 10/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 動機の例: 逐次実行 1 class PostsController 2 def destroy_tags 3 ... 4 posts = Post.where(id: params[: post_ids]) 5 ... 6 posts.each do |p| 7 p.tags.destroy_all! 8 end 9 ... 10 end 11 end 0..* 0..* Post Tag p1 p2 p3 t3
25.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 11/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 動機の例: 並列実行 p1 p2 p3 t2 t3 p1 p2 p3 t3 p1 p2 p3 t1 t3
26.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 11/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 動機の例: 並列実行 p1 p2 p3 t2 t3 p1 p2 p3 t3 p1 p2 p3 t1 t3
27.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 11/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 動機の例: 並列実行 p1 p2 p3 t2 t3 p1 p2 p3 t3 p1 p2 p3 t1 t3
28.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 11/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 動機の例: 並列実行 p1 p2 p3 t2 t3 p1 p2 p3 t3 p1 p2 p3 t1 t3
29.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 12/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 紹介と背景 動機の例 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行可能性の検証器 評価実験 結論と今後の課題
30.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 13/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . データストア Data Store DS は Class の集合、Relation の集合、Action の集合、 不変式の集合で定義 DS = ⟨C, R, A, I⟩ Class と Relation 0..* 0..* Post Tag 不変式 1 invariant forall{ |todo| 2 not todo.project.empty? 3 } Action
31.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 13/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . データストア Data Store DS は Class の集合、Relation の集合、Action の集合、 不変式の集合で定義 DS = ⟨C, R, A, I⟩ Class と Relation 0..* 0..* Post Tag 不変式 1 invariant forall{ |todo| 2 not todo.project.empty? 3 } Action
32.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 13/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . データストア Data Store DS は Class の集合、Relation の集合、Action の集合、 不変式の集合で定義 DS = ⟨C, R, A, I⟩ Class と Relation 0..* 0..* Post Tag 不変式 1 invariant forall{ |todo| 2 not todo.project.empty? 3 } Action
33.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 13/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . データストア Data Store DS は Class の集合、Relation の集合、Action の集合、 不変式の集合で定義 DS = ⟨C, R, A, I⟩ Class と Relation 0..* 0..* Post Tag 不変式 1 invariant forall{ |todo| 2 not todo.project.empty? 3 } Action
34.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 14/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . データストアの状態 Data Store State ある DS = ⟨C, R, A, I⟩ に対し、全て可能な状態の集合 は ⟨O, T⟩ ∈ DS 状態 1 p1 p2 p3 t2 t3 状態 2 p1 p2 p3 t3 状態 3 p1 p2 p3 t1 t3
35.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 14/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . データストアの状態 Data Store State ある DS = ⟨C, R, A, I⟩ に対し、全て可能な状態の集合 は ⟨O, T⟩ ∈ DS 状態 1 p1 p2 p3 t2 t3 状態 2 p1 p2 p3 t3 状態 3 p1 p2 p3 t1 t3
36.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 15/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 文と状態の差分 Statements and State Deltas 文は ADS 上、Action 内に1つ のノードで表す 文を実行したら、ある状態 s から s′ へ遷移することが差分 s′ ⊖ s で合わせる s′ = s ⊕ (s ⊖ s′ ) 状態 s p1 p2 p3 t2 t3 差分 s′ ⊖ s p1 p2 p3 t1 t2 t3 状態 s′ p1 p2 p3 t1 t3
37.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 15/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 文と状態の差分 Statements and State Deltas 文は ADS 上、Action 内に1つ のノードで表す 文を実行したら、ある状態 s から s′ へ遷移することが差分 s′ ⊖ s で合わせる s′ = s ⊕ (s ⊖ s′ ) 状態 s p1 p2 p3 t2 t3 差分 s′ ⊖ s p1 p2 p3 t1 t2 t3 状態 s′ p1 p2 p3 t1 t3
38.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 16/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADS の文とオブジェクトの種類
39.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 17/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ForEach ループ文 ForEach Loop Statement ForEach ループ文はオブジェ クトのリスト α とループの Block 文 B で表す。ループの回 数 n = |α| 。[s, s′ ]Bo は α 中のオ ブジェクト o に対して B を実 行する際の状態遷移。 オブジェクトが実行された順番によっ て、ループ間に依存関係が生じる → 先行研究に状態爆発の原因となる p1 p2 p3 t1 t2 t3
40.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 17/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ForEach ループ文 ForEach Loop Statement ForEach ループ文はオブジェ クトのリスト α とループの Block 文 B で表す。ループの回 数 n = |α| 。[s, s′ ]Bo は α 中のオ ブジェクト o に対して B を実 行する際の状態遷移。 オブジェクトが実行された順番によっ て、ループ間に依存関係が生じる → 先行研究に状態爆発の原因となる p1 p2 p3 t1 t2 t3
41.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 18/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 紹介と背景 動機の例 フォーマルモデル 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 結論と今後の課題
42.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 19/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 差分の一致性と和計算 Consistency and Union of Deltas 差分が consistent 一致であることは、生成と削除の集合は相互に 排他的である Oc ∩ Od = Tc ∩ Td = ∅∧ (∀t = ⟨oo, ot⟩ ∈ Tc : oo /∈ Od ∧ ot /∈ Od)∧ (∀t = ⟨oo, ot⟩ ∈ Td : oo /∈ Oc ∧ ot /∈ Oc) 2つ差分の和 (Union, ∩) はデータ集合の和集合に成る ∀δ1 = ⟨Oc1, Tc1, Od1, Td1⟩ , δ2 = ⟨Oc2, Tc2, Od2, Td2⟩ δ1 ∩ δ2 = ⟨Oc1 ∩ Oc2, Tc1 ∩ Tc2, Od1 ∩ Od2, Td1 ∩ Td2⟩ 一致的な2つ差分の和が一致でないことは conflict 衝突
43.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 19/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 差分の一致性と和計算 Consistency and Union of Deltas 差分が consistent 一致であることは、生成と削除の集合は相互に 排他的である Oc ∩ Od = Tc ∩ Td = ∅∧ (∀t = ⟨oo, ot⟩ ∈ Tc : oo /∈ Od ∧ ot /∈ Od)∧ (∀t = ⟨oo, ot⟩ ∈ Td : oo /∈ Oc ∧ ot /∈ Oc) 2つ差分の和 (Union, ∩) はデータ集合の和集合に成る ∀δ1 = ⟨Oc1, Tc1, Od1, Td1⟩ , δ2 = ⟨Oc2, Tc2, Od2, Td2⟩ δ1 ∩ δ2 = ⟨Oc1 ∩ Oc2, Tc1 ∩ Tc2, Od1 ∩ Od2, Td1 ∩ Td2⟩ 一致的な2つ差分の和が一致でないことは conflict 衝突
44.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 19/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 差分の一致性と和計算 Consistency and Union of Deltas 差分が consistent 一致であることは、生成と削除の集合は相互に 排他的である Oc ∩ Od = Tc ∩ Td = ∅∧ (∀t = ⟨oo, ot⟩ ∈ Tc : oo /∈ Od ∧ ot /∈ Od)∧ (∀t = ⟨oo, ot⟩ ∈ Td : oo /∈ Oc ∧ ot /∈ Oc) 2つ差分の和 (Union, ∩) はデータ集合の和集合に成る ∀δ1 = ⟨Oc1, Tc1, Od1, Td1⟩ , δ2 = ⟨Oc2, Tc2, Od2, Td2⟩ δ1 ∩ δ2 = ⟨Oc1 ∩ Oc2, Tc1 ∩ Tc2, Od1 ∩ Od2, Td1 ∩ Td2⟩ 一致的な2つ差分の和が一致でないことは conflict 衝突
45.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 20/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 並列実行と並列実行可能性 Coexecution and Coexecutability 並列実行の差分の和は衝突しない、且つ結果は逐 次実行と必ず等しくなる場合に並列実行可能性が あるという
46.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 21/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 並列実行可能性の条件 Coexecutability Condition 2つ文 A と B は以下の条件を満たす場合に限り、A と B は並列実行可能である: ∀s ∈ DS, ∀e ∈ s : (reads(A, e) ⇒ ¬creates(B, e) ∧ ¬deletes(B, e)) ∧ (creates(A, e) ⇒ ¬reads(B, e) ∧ ¬deletes(B, e)) ∧ (deletes(A, e) ⇒ ¬reads(B, e) ∧ ¬creates(B, e)) (具体的な証明は割愛させていただきます)
47.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 22/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 紹介と背景 動機の例 フォーマルモデル 並列実行可能性 並列実行可能性の検証器 評価実験 結論と今後の課題
48.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 23/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 並列実行可能性の検証器 Syntactic Analysis 1 先行研究のやり方でソースコードから ADS を 抽出 2 ADS の Actions に対し、ForEach ループを見つ けて、並列実行可能性を静的に検証する • ループ内に行なって、ループ外に影響する reads, creates, deletes 操作を要約する 3 並列実行可能なループに対し、和計算した差分 を適用し、洗練した FOL を作る 4 先行研究と同じ FOL 検証器で検証する
49.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 24/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 紹介と背景 動機の例 フォーマルモデル 並列実行可能性 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題
50.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 25/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 実験対象の選び方 GitHub から人気順上位 20 の Ruby プロジェクトを 見ました。 20 % ActiveRecords を使わない (4) 10 % Web アプリではない (2) 5 % Model 抽出に失敗 (1) 30 % ループがない (6) 35 % 実験対象 (7)
51.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 26/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 実験対象 残り 7 つプロジェクトに、アクションにループは 38 箇所存在します。その内 12 箇所は ADS 上に空ル ープになっています。 分析によって全てのループは並列実行可能である。
52.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 27/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 実験の設定 対象アプリに対して、手作業で検証したい不変式を書き ます。 1つの Action と1つの不変式に対し、複数の axiom 公理と1つ の conjecture 推測 を FOL 式の形で生成される。FOL 検証器から、 axiom 公理が conjecture 推測 を imply 暗示することが推論できれば、Action は不 変式を保つことが証明される。 タイムアウトの時間は 5 分に設定する。検証器のオプシ ョンとして soft sort を指定できる、on/off によって検証が 停止できる場合が変わる。 入れ子構造のループが実際に少ないため、著者等は自ら 新しい Action を4つ追加しました。
53.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 28/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 実験結果
54.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 29/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 紹介と背景 動機の例 フォーマルモデル 並列実行可能性 並列実行可能性の検証器 評価実験 結論と今後の課題
55.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 30/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 結論と今後の課題 結論 • coexecution 並列実行可能性を提案した • あるループに対して、並列実行の結果は逐次実行の結果と同 じか • データモデルを検証する際にループ内部依存性の検証を避け る方法 • coexecution 並列実行可能性の静的検証器を提案し実装した • 実験で提案手法が大幅に検証に要する時間を短縮できる ことを示した 今後の課題 • coexecutability 並列実行可能性を他の検証場面に適用できるか • ループに対する他の検証に有効であるか? • データモデルをもっと強化して、より多く不変式を書け ることに目指す • オブジェクト以外のデータ型をサポートできるか?
56.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 30/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 結論と今後の課題 結論 • coexecution 並列実行可能性を提案した • あるループに対して、並列実行の結果は逐次実行の結果と同 じか • データモデルを検証する際にループ内部依存性の検証を避け る方法 • coexecution 並列実行可能性の静的検証器を提案し実装した • 実験で提案手法が大幅に検証に要する時間を短縮できる ことを示した 今後の課題 • coexecutability 並列実行可能性を他の検証場面に適用できるか • ループに対する他の検証に有効であるか? • データモデルをもっと強化して、より多く不変式を書け ることに目指す • オブジェクト以外のデータ型をサポートできるか?
57.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 31/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 上から目線の所感 coexecutability 証明できるのはすごかった × 論理式が多すぎ • coexecutability の証明以外はわりと直感的 × 言っている coexecution は concurrent と実は関 係が少ない × Ruby 以外の言語に MVC をちゃんと守っている かどうかは気になります
58.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 紹介と背景 出典と著者情報 背景と先行研究 動機の例 逐次実行 並列実行 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 並列実行と並列実行可能性 並列実行可能性の条件 並列実行可能性の検証器 評価実験 実験対象 実験設定 実験結果 結論と今後の課題 2015 年 07 月 30 日(木) 32/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ご清聴ありがとうご ざいます
59.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 33/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . これからは予備スラ イドです
60.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 34/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性
61.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 35/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 抽象データストア Abstract Data Store 定義: ADS DS = ⟨C, R, A, I⟩ C = クラスの集合 R = リレーションの集合 A = アクションの集合 I = 不変式の集合 定義: クラス • 0 か 1 の親クラス • 親子に循環しない 定義: リレーション r = ⟨name, co, ct, card⟩ co 関係の元 co ∈ C ct 関係の目標 ct ∈ C card 1 対多, 1 対 1 等
62.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 36/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . データストアの状態 Data Store State ある DS = ⟨C, R, A, I⟩ に対し、全て可能な状態の集合 は ⟨O, T⟩ ∈ DS O = オブジェクトの集合 ∀o ∈ O, classof(o) ∈ C T = タプルの集合 ∀t ∈ T,t = ⟨r, oo, ot⟩ where r = ⟨co, ct, card⟩ ∈ R, classof(oo) = co ∧ classof(ot) = ct 言い換えると、DS の状態はデータベースに格納し ているデータをモデル化したもの
63.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 37/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . アクション, 不変式, 行為 Actions, Invariants and Behaviors アクション a ∈ A は可能な状態遷移の集合 a : ⟨⟨O, T⟩ , ⟨O′ , T′ ⟩⟩ ⊆ DS × DS 不変式 i ∈ I は状態からブーリアンへの関数 i : DS → {false, true} 行為は DS のある初期状態 s0 から、アクションによ って不変式を保って辿れる一連の状態 s0, s1, s2 . . .: • ∀k > 0 : sk ∈ DS ∧ ∃a ∈ A : (sk, sk+1 ∈ a) • ∀k > 0 : ∀i ∈ I : i(sk) = true DS に、任意の行為で辿れる状態の集合は DSR ⊆ DS
64.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 38/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 文 Statements アクションは一連の文で書かれます。1つの文 S は2つ状態 にある遷移: ⟨s, s′ ⟩ ⊆ DS × DS 文の種類が決まっている、S 文で可能な遷移 ⟨s, s′ ⟩ を [s, s′ ]S で表記する。 例としてあるクラスのオブジェクトを作る文 SC は: [s, s′ ]SC ↔∃oC : classof(oC) = C ∧ (oC ∈ s′ ∧ oC /∈ s∧ (∀e : (e ∈ s ↔ e ∈ s′ ) ∨ e = oC)) 一連の文 A1, A2, . . . An を含む Block 文 B は: ∀s, s′ ∈ DS × DS : [s, s′ ]B ⇔∃s1, s2 . . . sn−1 ∈ DS × . . . × DS : [s, s1]A1 ∧ [s1, s2]A2 ∧ . . . ∧ [sn−1, s′ ]An
65.
. . .
.... .... .... ... . . . .
66.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 40/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ForEach ループ文 ForEach Loop Statement ForEach ループ文はオブジェクトのリスト α とル ープの Block 文 B で表す。ループの回数 n = |α| 。 [s, s′ ]Bo は α 中のオブジェクト o に対して B を実行す る際の状態遷移。 ∀s, s′ ∈ DS × DS : [s, s′ ]FE ⇔ ∃o1 . . . on ∈ α, ∃s1 . . . sn ∈ DS : ∀i, j ∈ [1 . . . n] : i ̸= j ⇔ oi ̸= oj∧ [s, s1]Bo1 ∧ [s1, s2]Bo2 ∧ . . . ∧ [sn−1, sn]Bon ∧ sn = s′
67.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 41/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . フォーマルモデル 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件
68.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 42/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 実行の差分 Execution Deltas ある文を実行する前後の状態 s と s′ の間に、実行の 差分: δ = s′ ⊖ s = ⟨Oc, Tc, Od, Td⟩ そのうち、Oc, Tc は 生成したオブジェクトとリレーションの集合、 Od, Td は削除したオブジェクトとリレーションの集 合を表す。 例えば:s1 = {a, b, ⟨a, b⟩}, s2 = {a, b, c} ならば s1 ⊖ s2 = ⟨{}, {⟨a, b⟩}, {c}, {}⟩ s2 ⊖ s1 = ⟨{c}, {}, {}, {⟨a, b⟩}⟩
69.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 43/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 差分の一致性と和計算 Consistency and Union of Deltas 差分が consistent 一致であることは、生成と削除の集合は相互に 排他的である Oc ∩ Od = Tc ∩ Td = ∅∧ (∀t = ⟨oo, ot⟩ ∈ Tc : oo /∈ Od ∧ ot /∈ Od)∧ (∀t = ⟨oo, ot⟩ ∈ Td : oo /∈ Oc ∧ ot /∈ Oc) 2つ差分の和 (Union, ∩) はデータ集合の和集合に成る ∀δ1 = ⟨Oc1, Tc1, Od1, Td1⟩ , δ2 = ⟨Oc2, Tc2, Od2, Td2⟩ δ1 ∩ δ2 = ⟨Oc1 ∩ Oc2, Tc1 ∩ Tc2, Od1 ∩ Od2, Td1 ∩ Td2⟩ 一致的な2つ差分の和が一致でないことは conflict 衝突
70.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 44/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 差分の適用 Apply of Deltas 状態 s に差分 δ を適用することを ⊕ で表す ∀s = ⟨O, T⟩ ∈ DS, s′ = ⟨O′ , T′ ⟩ ∈ DS : s′ = s ⊕ δ ⇔ (∀o : o ∈ O′ ⇔ (o ∈ O ∨ o ∈ Oc) ∧ o /∈ Od)∧ (∀t = ⟨oo, ot⟩ : t ∈ T′ ⇔ (t ∈ T ∨ t ∈ Tc)∧ t /∈ Td ∧ oo ∈ O′ ∧ ot ∈ O′ )
71.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 45/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 並列実行と並列実行可能性 Coexecution and Coexecutability 並列実行の差分の和は衝突しない、且つ結果は逐 次実行と必ず等しくなる場合に並列実行可能性が あるという
72.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 46/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 文はエンティティに対する操作 Statement Reads, Creates, Deletes creates(A, e) ⇔∃s, s′ ∈ DS : [s, s′ ]A ∧ e /∈ s ∧ e ∈ s′ deletes(A, e) ⇔∃s, s′ ∈ DS : [s, s′ ]A ∧ e ∈ s ∧ e /∈ s′ cover(∆, A, S) ⇔(∀s ∈ S, s′ ∈ DS : [s, s′ ]A ⇒ (∃δ ∈ ∆ : s′ = s ⊕ δ)) ∧ (∀s ∈ S, δ ∈ ∆ : [s, s ⊕ δ]A) reads(A, e) ⇔∃s ∈ DS : ¬∃∆ ⊆ DS∆ : cover (∆, A, {s ∪ {e}, s {e}})
73.
Coexecutability: 並列実行可能性 大阪大学大学院 CS
専攻楊嘉晨 フォーマルモデル 抽象データストア 文のモデル化 ADS の文とオブジェクトの種類 並列実行可能性 実行の差分 並列実行と並列実行可能性 文はエンティティに対する操作 並列実行可能性の条件 2015 年 07 月 30 日(木) 47/32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 並列実行可能性の条件 Coexecutability Condition 2つ文 A と B は以下の条件を満たす場合に限り、A と B は並列実行可能である: ∀s ∈ DS, ∀e ∈ s : (reads(A, e) ⇒ ¬creates(B, e) ∧ ¬deletes(B, e)) ∧ (creates(A, e) ⇒ ¬reads(B, e) ∧ ¬deletes(B, e)) ∧ (deletes(A, e) ⇒ ¬reads(B, e) ∧ ¬creates(B, e)) (具体的な証明は割愛させていただきます)
Télécharger maintenant