2018 Fiscal Year Annual Research 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を選択し、両言語の開発と緻密に連携しながら、Rubyの操作的意味論の系統的導出を目指している。最終年度では、これまでの研究を具体的な成果に繋げることを目標として、以下の2点に取り組んだ。 (1) Ruby開発チームとの共同研究として、2つのRubyプログラムの静的解析方式を開発し、ツールの試作を支援した。そのひとつは抽象解釈に基づく型プロファイラ、もうひとつは漸進的型付けの考え方を取り入れた型検査器である。どちらの静的解析方式も、その開発には、Rubyの意味論に根ざした緻密な分析が必要であった。この分析の一部は本研究課題が提案する実用言語の系統的形式的理解に基づいて行われた。この開発は本研究の具体的応用のひとつであり、この応用を通じて提案方式の実用規模の言語に対する適用可能性および有用性は示されたと言える。本共同研究の成果の一部は、Rubyの次期バージョンであるRuby 3に取り込まれることが検討されている。 (2) 本研究が基礎とする関数型言語コンパイラ構築の要素技術を発展させる研究開発を行い、以下の2点の成果を得た。ひとつは、高度な言語機能を実現する基盤となる型主導コンパイル方式を最適化する理論の構築および実装技術の確立である。この研究により、SML#コンパイラが挿入する属性抽象の約8割を削減し、約1割の高速化を達成した。もうひとつは、マシンコードの証明論の考え方を取り入れた、多相関数の新たなコンパイル方式の構築である。その理論的検討と実装は今後の課題である。
|
Research Products
(4 results)