本研究の一般的な目標は,2つのプログラミング言語に対して,型理論や意味論などの分析を通じて,二者の違いを吸収するコードを系統的に導出するためのコンパイル方式を確率することである.これは,型理論に基づく正しさなどが保証された形での,プログラミング言語間の相互運用を可能とする新しいアプローチである.連携する言語の意味や評価モデルの分析から,連携のためのコードを系統的に導出することで,より容易,安全,かつ強力な言語間の連携を可能とする.この目標が達成されたならば,本方式は高信頼・高機能なアプリケーションの生産性を高めるための基盤技術のひとつとなり得る. 本年度の研究実施計画は,連携対象の言語としてRubyを選択し,型付き関数型言語とRubyの高度な連携機構を実現することであった.これら計画を遂行する最初の課題は,Rubyの意味論を系統的に理解することである.この課題の達成のため,JIS/ISO標準として定められているRubyの言語仕様の分析を通じ,Rubyの意味論の理解を試みた.しかし,Rubyは高度な言語機構が相互に依存する複雑な言語であり,JIS/ISO標準に定められている形式では,本研究の目的である言語間連携に必要となるRuby言語の理解を得ることが困難であった.そこで我々は,相互依存する言語機能の意味規則をオラクルとして抽象化することで,Rubyの複雑な言語仕様を言語機能ごとに分割し,各機能を独立した計算系として定義することで,より系統的に理解可能なRubyの意味論を与える手法を開発した.この研究成果は,高度な言語間連携のための基礎理論を与えるものであり,研究目的の達成に必須のものである.さらに,この研究成果は,実用プログラミング言語のためのより盤石な言語設計・実装基盤の実現にも発展し得るものである.
|