2017 Fiscal Year Research-status Report
実用プログラミング言語のための系統的言語開発基盤の実現
Project/Area Number |
15K15964
|
Research Institution | Tohoku University |
Principal Investigator |
上野 雄大 東北大学, 電気通信研究所, 准教授 (60551554)
|
Project Period (FY) |
2015-04-01 – 2019-03-31
|
Keywords | Ruby / SML# / スクリプト言語 / 関数型言語 / 操作的意味論 / コンパイラ |
Outline of Annual Research Achievements |
本研究では、これまで経験的に開発されてきた実用プログラミング言語に対し、関数型言語の理論研究アプローチを応用し、言語のモジュラーな形式的理解を与え、系統的な言語設計と処理系実装を可能とする枠組みを確立することを目指す。この達成に向けて、本研究では、系統的開発のモデル言語としてSML#を、実用言語としてRubyを選択し、SML#の開発と緻密に連携しながら、Rubyの操作的意味論の系統的導出を目指している。 本年度の計画は以下の3点であった。(1) Rubyへの静的型付けの導入の検討、(2) より緻密なRubyの操作的意味論の構築とRubyインタプリタへの反映、(3) 高効率なコンパイラ導出を実現する基礎研究。 これを受けて、本年度は以下を実施した。 (1) Ruby開発チームとの産学連携共同プロジェクトを通じて、既存のRubyの型付け方式に関する情報を収集し、その一部の開発者と機動的な議論を行った。その結果、構造的な多相性よりもクラス名をアトムとする多相性のほうがより厳密かつ直感的である、型理論的な妥当性の追求より実用上のユースケースに着目すべきである、などの結論を得た。 (2) モジュラーな意味論を実現するための基盤技術として自然結合を用いることの着想を得た。これまでの本研究における意味論の構築にはオラクル関係と言語拡張を機能ごとに使い分けていたが、自然結合に基づく方法ならば、これらを統合したより系統的な意味論の構築が可能になると期待できる。 (3) 関数型言語コンパイラ構築の要素技術の研究開発を行い、以下の2点の成果を得た。ひとつは、ミューテータを止めない平行ゴミ集め方式を最適化し更なる並列性能が得られたことである。もうひとつは、関数型言語とSQLの統合方式を見直し多くのSQL構文のサポートを可能としたことである。これらの成果は、次のSML#のリリースに統合される予定である。
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
研究計画の達成に向けた体制整備や基礎研究は着実に進展している一方、本年度に計画していた事例研究に遅れが生じている。これは、本研究が当初に想定していた方針では、前年度の事例研究で得た緻密な仕様をメンテナンス可能な形で書き下すことに無理が生じたことに起因する。自然結合による合成方式など、当初方式より柔軟かつ系統的と期待できる方式の導入による解決などを模索している。
|
Strategy for Future Research Activity |
以下の点に重点を起きつつ研究を進める。 (1) Ruby開発チームとの連携を通じたRuby向け静的型システムの推進。型システムの構築は、本研究課題が目指す関数型言語の理論研究的な実用言語開発を直接応用できる分野のひとつであり、本研究の実用性を測る事例として適切であると考える。また、広く普及している言語に適用することで、本研究成果を社会に広く還元することを狙う。 (2) 新たに着想を得た自然結合に基づくアプローチの更なる検討と、それに基づく操作的意味論の再構築。前年度に開発したインタプリタのテスト実行から得た細かな言語仕様をケーススタディの対象として用い、実用言語の緻密な振る舞いを見通しよく記述可能な系統的方式の確立を目指す。また、その方式によって得られるであろう操作的意味論をRubyインタプリタに反映し、本研究の実用可能性に裏付ける。 (3) 高い実用性を有するプログラミング言語の実現に向けた要素技術研究の継続。関数型言語的アプローチによるコンパイラの導出には、関数型言語コンパイラの要素技術も洗練することが必須である。本研究では、これまでと同様に、Rubyだけでなく、SML#においても、実用言語との関連が深い高度な言語機能の実現に必要な基礎研究を引き続き行う。
|
Causes of Carryover |
国際会議論文の採択が少なく旅費に余剰が発生した。次年度使用額も含め、研究費は、研究調査および研究成果発表のための学術会議参加費および旅費、研究の遂行に必要なノートPCやソフトウェアなどの消耗品、ソフトウェア開発外注費、ならびに書籍など資料の購入に使用する。
|
Research Products
(5 results)