ソフトウェア動的更新の理論について 産総研 橋本政朋.

Slides:



Advertisements
Similar presentations
セキュアネットワーク符号化構成法に関する研究
Advertisements

XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
SHA-1の高速化tips 2007/9/15
4章 制御の流れ-3.
ソフトウェア基礎科学 授業資料: 論理関係(logical relations)のお話
実証分析の手順 経済データ解析 2011年度.
プログラミングパラダイム さまざまな計算のモデルにもとづく、 プログラミングの方法論 手続き型 関数型 オブジェクト指向 代数 幾何.
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
Lightweight Language Weekend ls-lRシェル
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
計算の理論 II NP完全 月曜4校時 大月美佳.
授業展開#11 コンピュータは 何ができるか、できないか.
2009/10/9 良いアルゴリズムとは 第2講: 平成21年10月9日 (金) 4限 E252教室 コンピュータアルゴリズム.
Semantics with Applications
情報工学通論 プログラミング言語について 2013年 5月 28日 情報工学科 篠埜 功.
並列分散プログラミング.
データ構造と アルゴリズム 知能情報学部 新田直也.
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
情報工学通論 プログラミング言語について 2014年 5月 20日 情報工学科 篠埜 功.
計算量理論輪講 岩間研究室 照山順一.
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
大域的データフロー解析 流れグラフ 開始ブロック 基本ブロックをnodeとし、 基本ブロック間の制御関係をedgeとするグラフを、
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
チューリング機械 状態の有限集合 ヘッドの方向を表す。 L:1コマ左へ R:1コマ右へ テープ記号の有限集合 入力記号の有限集合 動作関数
プログラム実行時情報を用いたトランザクションファンクション抽出手法
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
プログラム依存グラフを利用した 情報漏洩解析手法の提案と実現
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
プログラミング言語入門.
形式言語とオートマトン Formal Languages and Automata 第4日目
コンピュータに計算させる命令を確かめよう!
Structured programming
Javaプログラムの変更を支援する 影響波及解析システム
レジスタの割付け 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第12章5節.
論文紹介 - Solving NP Complete Problems Using P Systems with Active Membranes 2004/10/20(Wed)
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
任意数の制約階層化 2007/10/31 上田研究室 M2 西村 光弘.
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
ソフトウェア保守のための コードクローン情報検索ツール
プログラムの基本構造と 構造化チャート(PAD)
2007年度 情報数理学.
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
モデル検査(5) CTLモデル検査アルゴリズム
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
補講:アルゴリズムと漸近的評価.
5.チューリングマシンと計算.
計算の理論 I ー正則表現とFAの等価性ー 月曜3校時 大月 美佳.
保守請負時を対象とした 労力見積のためのメトリクスの提案
PROGRAMMING IN HASKELL
PROGRAMMING IN HASKELL
コンパイラ 2012年10月11日
回帰テストにおける実行系列の差分の効率的な検出手法
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
情報とコンピュータ 静岡大学工学部 安藤和敏
Presentation transcript:

ソフトウェア動的更新の理論について 産総研 橋本政朋

動機 ユビキタスコンピューティング時代の本格到来もそう遠くなさそう ソフトのバグは加算無限個存在 機能拡張も必須 サービスを停めたくない マイクロサーバが至る所に存在 ソフトのバグは加算無限個存在 機能拡張も必須 サービスを停めたくない 動的更新とは何なのか? どのような動的更新が安全なのか?

ユビキタスな世界 It needs: 的確な状況把握 時刻表 整備された情報インフラ 位置追跡 予定表との連携 プロファイリング 環境埋込小型サーバ サービス間のシームレスな接続 (Web,プロファイル情報,etc.)  ... どこに行けば? 検査項目尿検査 心電図 血液検査 Direct! 小型サーバ 乗換案内 位置追跡 「右に曲がってください」 スケジュール スケジュール 位置追跡

文献 D.Gupta, P.Jalote, and G.Barua.  A Formal Framework for On-line Software Version Change. IEEE Transaction on Software Engineering, Vol.22 No.2, pp. 120-131, 1996. D.Gupta. On-line Software Version Change. PhD thesis, Dept. CSE, IIT Kanpur, June 1995.

Plan 一般更新モデル 更新妥当性の決定不能性 妥当性が決定可能な動的更新 プログラムモデルの拡張 更新の妥当性 シンプルプログラムモデル 定理:更新の妥当性の検証は決定不能 妥当性が決定可能な動的更新 妥当な更新の構成法 プログラムモデルの拡張

一般更新モデル あるプログラムCからC’への更新 C,C’それぞれは“正しい”と仮定 実行状態の変換はプログラマが与える

プロセス 各Cに対しSC0(初期状態)を唯一定める SC0からある時点,ある入力列によってとりうる状態は 到達可能 入力 プログラム C C Sn C S1 C SC0 C Si 状態 プロセス 各Cに対しSC0(初期状態)を唯一定める SC0からある時点,ある入力列によってとりうる状態は 到達可能

動的更新 入力 プログラム C S1 C SC0 C Si 状態 更新 プロセス C’ T(Si) 状態変換

Points 即時的変更 インクリメンタルな変更はその組み合わせで表現可能 状態変換はユーザが定義する 妥当性を決するのはタイミング

更新の妥当性 C Sn C S1 C SC0 C Si 更新 有限ステップで 新プログラムの到達可能な状態に達するとき妥当 C’ SC’0 T(Si)

更新妥当性の決定不能性 シンプルなプログラムモデルの導入 妥当性の決定不能性 より複雑なプログラムモデルででも決定不能

シンプルプログラムモデル 命令型言語の単純版(関数,手続きなし) プログラムCに含まれる変数の集合をV(C) プログラムはステートメントの列 プログラムCに含まれる変数の集合をV(C) プログラムCの状態SCは変数(V(C)⋃{PC})から適当な値(⊥含む)への写像 SC0は, SC0(v)=⊥(∀v∈V(C))       SC0(PC)=First(C)

決定不能性 SがCの到達可能な状態であるような任意のC,C’,T,Sに ついて,SにおけるTを用いたCからC’への動的更新が妥当 であるかどうかは決定不能 C SC0 C S C’ T(S) C’ SC’0 任意のプログラムC に対し,SC(PC)=Last(C)+1であるような 状態SCが到達可能であるかどうかは決定不能 (停止問題)

妥当性が決定可能な動的更新 状態変換TCC’を制限 恒等変換,変数追加,変数名変更,のみ扱う +変域(状態)も制限 実質,更新タイミング(更新可能状態)の制限 PCのみ制限 ←実用上の問題 まだ決定不能! 変数名変換 CのPC値からC’のPC値への写像 TCC’は(KT,N)という形

やりたいこと 妥当性のための十分条件を求める 計算可能 妥当 十分条件 ステートメント実行毎にチェック 算出したPC値のときのみ更新を起こす 全ては算出不能

十分条件 SにおけるCからC’へのTを用いた更新が妥当 ⇑    ⇑ ∃S’’ s.t. C’で到達可能かつS’’(PC)=S’(=T(S))(PC)かつ       ∀x∈V(C’),x使用前に再定義される,または               S’(x)= S’’(x) V1:更新後使用されるまでに再定義される変数 V2:更新後そのままでOKな変数 V1 A1 V2 A2 PC K C SC0 C S C’ T(S) V1 A’1 V2 A2 PC K C’ SC’0 C’ S’’ ∃

更新ポイントの選定 更新前プログラムCの各コントロールポイントにおいてV1とV2を見付ける 見付けきるアルゴリズムは存在しない データフロー解析活用で近似 V1⋃V2=V(C’)となるコントロールポイントを選ぶ

例:階乗計算プログラム 入力nを読み,階乗を計算出力するループ

V1 ⋃ V2={i,n,p}=V(C)=V(C’) Version 1 (C) while true do S’1 S1.1 read n; S’1.1 S1.2 if n < 0 then S’1.2 S1.2.1 write “error” else S’1.2.1 else begin S1.2.2 if n = 0 then S’1.2.2 i ← 1; S1.2.2.1 write 1 S’1.2.3 p ← 1; S’1.2.4 while i ≤ n do S1.2.2.2 S’1.2.4.1 p ← p * i; S1.2.2.3 S’1.2.4.2 i ← i + 1 done S1.2.2.4 S1.2.2.4.1 S’1.2.5 write p end S1.2.2.4.2 S1.2.2.5 {i,n,p} {i,p} {i,p} {i,p} V1 Version 2 (C’) V2={n} {i,n,p} V1 ⋃ V2={i,n,p}=V(C)=V(C’) Version 1 (C)

より一般的なプログラムモデル 関数,手続の導入 更新を関数単位として妥当性を再検討 関数間DFAは高くつく 呼び出し中の関数は更新しない 大域変数しか変更しない 関数集合Fのどの関数も呼び出し中でないときの更新が妥当であるようなFを求める 更新される関数が全てfunctional enhancementならそれらがFをなす

まとめと課題 動的更新の定式化 更新妥当性の決定不能性の証明 安全な更新の構成 更新に対する実用的な制限とは? 実時間性は扱っていない シンプルケース(関数,手続なし) CやPascal 程度ケース 更新に対する実用的な制限とは? 実時間性は扱っていない