2016 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の操作的意味論の系統的導出を目指している.本年度は以下を実施した. (1) Rubyの開発チームと産学連携し,共同利用・共同研究拠点である東北大学電気通信研究所において共同プロジェクト研究「産業的プログラミング言語開発とプログラミング言語基盤研究の技術融合」を発足した.これにより,基礎研究と実用言語開発の両方の性質を持つ本研究を高い水準で達成するための体制が整った. (2) 本研究で構築したRubyの操作的意味論から系統的に導出されたRubyインタプリタを開発した.また,このインタプリタでRuby言語付属のテストケースを実行し,このインタプリタのRubyへの適合性を検査した.この開発の結果,Ruby 2.0.0p648に付属の3966件のテストケースのうち623件を通すことに成功した.また,この開発の過程で,これまで見落としていたRubyの仕様を洗い出すことができた. (3) 関数型言語コンパイラ構築の要素技術として,以下の2点を開発した.ひとつは,静的型付け言語から外部JSONデータを型付きで操作する理論とそのSML#への実装である.もうひとつは,ミューテータを止めない平行ごみ集め方式の構築である.これらの研究は,プログラミング言語研究分野において世界最高峰の国際会議ECOOPおよびACM ICFPに採択され,高い評価を受けている.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本年度に当初予定していた計画はほぼ達成され,次年度に向けての課題も明らかになっている.以上より,おおむね所期の進展を得られたと考える.
|
Strategy for Future Research Activity |
以下の点に重点を置きつつ研究を進める. (1) Ruby開発チームとの更なる連携.産学連携研究体制を発足させ緊密な議論を行った結果,Ruby言語の開発や,Rubyを用いたアプリケーション開発におけるいくつかの研究課題を見出すことができた.なかでも,本研究に関連が深いテーマは,Rubyへの静的型付けの導入である.動的型付け言語として開発されたRubyに静的型付けを後付けするには,どのようなRubyプログラムを型付けの対象として型で何を検査するのかを,理論背景や実用性の観点から,緻密に設計する必要がある.この設計を,Ruby開発チームと連携し推進することを計画している. (2) より緻密なRubyの操作的意味論の構築とRubyインタプリタへの反映.本研究の完成に向けて,本年度開発したRubyインタプリタとテスト実行により洗い出された細かな言語仕様を,本研究が推進しているモジュラーかつ形式的な言語理解を与える操作的意味論に反映させる必要がある.この反映は,言語設計,実装,テストの一連のサイクルを一度終わらせた上での二巡目のサイクルに相当し,持続的に開発されるプログラミング言語の開発体制を倣しているとも言え,本研究が提案する系統的プログラミング言語開発体制の実現可能性を高めることに繋がると期待できる. (3) 高効率なコンパイラを導出するための要素技術の開発.関数型言語的アプローチによる仕様からのコンパイラの導出には,関数型言語コンパイラの要素技術も洗練することが必要不可欠である.そこで,昨年度に引き続き,Rubyに限らず,SML#においても,実用言語とも関連の深い高度な言語機能を実現するために必要な基礎研究を行う.
|
Causes of Carryover |
ソフトウェア制作の外注費に余剰が発生した.
|
Expenditure Plan for Carryover Budget |
研究費は,研究調査および研究成果発表のための学術会議参加費および旅費,研究の遂行に必要なノートPCやソフトウェアなどの消耗品,ならびに書籍など資料の購入に使用する.
|
Research Products
(4 results)