研究概要 |
[研究目的] ソフトウェアプログラムは,安全に実行できる信頼性が要求される一方で,コストを抑えるために迅速かつ柔軟に開発する必要がある.前者の実現のために,型理論の成果を用いた静的型付け言語がプログラミング言語として広く用いられている.一方,後者を優先する場合は動的型付け言語が用いられる場合が多く,どちらを用いるかは開発を開始する段階で決めねばならず,途中で変更することができない.そこで本研究では,開発の段階や部品によって静的・動的型付けを切り替えられるように,静的型付けと動的型付けの両方を混在させて使える言語を実現することを目的とする.さらに,プログラミング言語の理論的基盤として,言語の異なる特徴をうまく組み合わせる手法一般についての研究に発展させる. [実施状況] 静的型付け言語であるJavaの基本的な言語機能に加えて動的型を扱えるようにした言語の数学モデルと,その言語のプログラミング言語処理系の実装のための予備実験を含む論文をOOPSLA2011にて発表した.また,実際のプログラミング言語処理系の実装に必要な型検査アルゴリズムの構築に取り組み,提案言語の数学モデルの型システムの仕様に対して健全かつ完全な半決定手続きが得られた.この成果は,プログラミング言語処理系が暴走しないことを保証するために必須のものである.
|
今後の研究の推進方策 |
半決定手続きをさらに改良して決定可能なアルゴリズムを構築することを試み,これを元にプログラミング言語処理系の実装を進める.さらに,実際のJavaプログラムの一部の型を動的型に置き換えたものをプログラミング言語処理系への入力とすることで,このプログラミング言語処理系における提案言語に関する拡張部分の性能を評価できる.この際,言語のライブラリモジュールとの間の型の不整合をどう扱うかが問題になるが,ライブラリモジュールをロード時に変換することで対応できる見通しである.
|