• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 前のページに戻る

並行プログラムのための型理論に基づく利便性の高い静的検証手法

研究課題

研究課題/領域番号 11J00571
研究種目

特別研究員奨励費

配分区分補助金
応募区分国内
研究分野 ソフトウエア
研究機関京都大学

研究代表者

末永 幸平  京都大学, 情報学研究科, 日本学術振興会特別研究員(PD)

研究期間 (年度) 2011 – 2013
研究課題ステータス 完了 (2011年度)
配分額 *注記
800千円 (直接経費: 800千円)
2011年度: 800千円 (直接経費: 800千円)
キーワードプログラム検証 / 並行プログラム / 型システム / メモリリーク / 型推論 / 形式手法 / 自動検証 / プログラム解析
研究概要

本年度は共有メモリ型並行プログラムに対して、メモリ、ロック、スレッド等のリソースが回収されずにプログラムが終了することはないという性質を検証するための手法を設計した。具体的には(1)並行プログラムの静的検証手法の理論的基盤の構築(2)検証アルゴリズムの定義(3)検証アルゴリズムの実装を行った。(1)については共有メモリ型並行プログラムをモデル化する手続き型言語の構文と意味論を定義した。その上で、この言語で記述されたプログラムに対する型システムを定義し、その健全性(プログラムが型付け可能であれば、いかなるスケジューリングや実行経路においてもリソースは必ず回収される)を証明した。このステップは先行研究(末永・小林 APLAS 2008)において提案した、ポインタ型を所有権によって拡張し、その所有権によってポインタの指す先のメモリへのアクセス権限と、そのメモリを解放する義務を表現した型システムをベースとして、その拡張を行った。本研究では、先行研究の型システムをロック型とスレッド型で拡張し、メモリと同様にロックとスレッドが正しく解放されることを保証している。ロックによる同期を介して所有権を受け渡すことができるように、ロック型には獲得可能型環境が付加される。プログラムは、ロックの生成、アンロック操作を行なう際には獲得可能型環境に記述された所有権を自らが保有する所有権からロックに付託し、ロックの獲得、回収を行なう際には獲得可能型環境に記述された所有権を自らのものとする。これにより、ロックを介したスレッド間の所有権の受け渡しを一貫して行なうことが可能となっている。スレッド型についても同様に、スレッドが終了した際に保有している所有権を獲得可能型環境として付加している。この型システムについて健全性を証明した。(2)については、受入研究者及び受入研究室の学生と共同で自動的にプログラムが型付け可能かどうかを判定する検証アルゴリズムを設計した。この型システムを用いた自動検証において困難な点は、適切な獲得可能型環境をいかに推論するかである。このために、検証を(1)獲得可能型環境の定義域の推論(2)型に関する制約の所有権制約への還元(3)所有権制約の解消の3ステップに分けた。1つ目のステップにおいては、獲得可能型環境を表す変数を制約言語に導入し、その定義域に関する集合の包含関係の制約を生成した上で、その制約を不動点反復アルゴリズムによって解消する。2つ目のステップにおいては、1つ目のステップにおいて得られた情報を元にして型環境変数を具体化し、型環境に関する制約を型に関する制約に還元した上で、その制約をさらに所有権変数に関する制約に還元する。3つ目のステップにおいては、所有権変数に関する制約を既存の制約ソルバーに入力として与え、充足可能性を判定する。これにより、初めに入力として与えられたプログラムが型付け可能であるかどうかが可能となる。(3)については、前項に述べたアルゴリズムの実装と実験を受入研究室の学生が主体となって行った。これにより、前項のアルゴリズムの動作を確認した。

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

当初の予定通り、並行プログラムのためのリソースリーク解析のための型システムの形式化を完了させ、型推論アルゴリズムを定義し、その実装までを得ることができた。また、ここまでの成果を論文としてまとめて提出したところである。

今後の研究の推進方策

今年度は本研究の着想の妥当性を確認するために問題設定においていくつかの単純化を行なっている。具体的には(1)ロックやスレッドをメモリ内に格納し、そのポインタを受け渡すことはない(2)構造体が存在しない等である。単純化によって今年度研究範囲から外した内容を扱えるようにすることは今後の重要な課題である。また、今回の実装はC言語をモデル化したより容易な言語を対象しているため、Cプログラムを直接扱える検証器を実装し、より大きなプログラムを用いて実験することも重要な課題である。

報告書

(1件)
  • 2011 実績報告書
  • 研究成果

    (7件)

すべて 2012 2011

すべて 雑誌論文 (2件) (うち査読あり 2件) 学会発表 (5件)

  • [雑誌論文] Programming with Infinitesimals : A While-Language for Hybrid System Modelin2011

    • 著者名/発表者名
      Kohei Suenaga, Ichiro Hasuo
    • 雑誌名

      Automata, Languages and Programming-38th International Colloquium, ICALP 2011

      巻: 6756 ページ: 392-403

    • DOI

      10.1007/978-3-642-22012-8_31

    • ISBN
      9783642220111, 9783642220128
    • 関連する報告書
      2011 実績報告書
    • 査読あり
  • [雑誌論文] Ordered Types for Stream Processing of Tree-Structured Data2011

    • 著者名/発表者名
      Ryosuke Sato, Kohei Suenaga, Naoki Kobayashi
    • 雑誌名

      Journal of Information Processing

      巻: 19 ページ: 74-87

    • 関連する報告書
      2011 実績報告書
    • 査読あり
  • [学会発表] Programming with Infinitesimals : A WHILE-Language for Hybrid System Model in2012

    • 著者名/発表者名
      末永幸平
    • 学会等名
      第14回プログラミングおよびプログラミング言語ワークショップ
    • 発表場所
      和歌山県
    • 年月日
      2012-03-09
    • 関連する報告書
      2011 実績報告書
  • [学会発表] Programming with Infinitesimals : A WHILE Language for Hybrid System Modelin2011

    • 著者名/発表者名
      Kohei Suenaga
    • 学会等名
      Ninth Asian Symposium on Programming Languages and Systems
    • 発表場所
      台湾
    • 年月日
      2011-12-06
    • 関連する報告書
      2011 実績報告書
  • [学会発表] Programming with Infinitesimals : A WHILE-Language for Hybrid System Modelin2011

    • 著者名/発表者名
      末永幸平
    • 学会等名
      代数,論理,幾何と情報科学研究集会
    • 発表場所
      東京都
    • 年月日
      2011-08-23
    • 関連する報告書
      2011 実績報告書
  • [学会発表] Programming with Infinitesimals : A WHILE-Language for Hybrid System Modelin2011

    • 著者名/発表者名
      Kohei Suenaga
    • 学会等名
      The 38th International Colloquium on Automata, Languages and Programming
    • 発表場所
      スイス
    • 年月日
      2011-07-07
    • 関連する報告書
      2011 実績報告書
  • [学会発表] Programming with Infinitesimals : A WHILE-Language for Hybrid System Modelin2011

    • 著者名/発表者名
      Kohei Suenaga
    • 学会等名
      Twenty-Sixth Annual IEEE Symposium on Logic in Computer Science
    • 発表場所
      カナダ
    • 年月日
      2011-06-22
    • 関連する報告書
      2011 実績報告書

URL: 

公開日: 2011-12-12   更新日: 2024-03-26  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi