Project/Area Number |
22KJ1313
|
Project/Area Number (Other) |
22J14382 (2022)
|
Research Category |
Grant-in-Aid for JSPS Fellows
|
Allocation Type | Multi-year Fund (2023) Single-year Grants (2022) |
Section | 国内 |
Review Section |
Basic Section 60050:Software-related
|
Research Institution | Tokyo Institute of Technology |
Principal Investigator |
田辺 裕大 東京工業大学, 情報理工学院, 特別研究員(DC2)
|
Project Period (FY) |
2023-03-08 – 2024-03-31
|
Project Status |
Declined (Fiscal Year 2023)
|
Budget Amount *help |
¥1,400,000 (Direct Cost: ¥1,400,000)
Fiscal Year 2023: ¥700,000 (Direct Cost: ¥700,000)
Fiscal Year 2022: ¥700,000 (Direct Cost: ¥700,000)
|
Keywords | プログラミング言語 / 型システム / 型推論 / バージョン管理システム / コエフェクト / 先進的モジュールシステム |
Outline of Research at the Start |
現代のソフトウェア開発は多数のパッケージを組み合わせて行うことが主流である。プログラムの振る舞いは使用するパッケージの特定の実装に依存するため、パッケージのバージョンの指定が必要となる。しかし現存の手法では開発規模が大きくなるにつれてパッケージの追加・更新が困難になる事が知られている。 本研究の目的は、ソフトウェアパッケージの異なるバージョンを自由に組み合わせ、制御する為の基盤を確立することである。そのために関数型言語をベースとした、言語要素としてバージョンの概念を持つプログラミング言語の設計・実装を行う。
|
Outline of Annual Research Achievements |
交付申請書で挙げた3つの項目について以下の成果を得た。 項目Ⅰ「コア言語の設計」コア言語λVLの体系を変更し、型安全性の言明を洗練させた。本成果は萌芽的な研究アイデアと共に<Programming>2023で発表した。 項目Ⅱ「現代的言語機能の提案言語への導入」(オブジェクト指向言語)提案機能を持つオブジェクト指向言語BatakJavaを設計した。BatakJavaではバージョニングの対象はクラス定義である。型検査機は各クラスの持つバージョン情報を収集し、特定のバージョン向けのJavaクラスへとコンパイルする。BatakJava言語処理系を拡張可能JavaコンパイラExtendJを用いて実装し、事例研究を行った。本成果はSLE2023で発表された。また、BatakJavaの柔軟性を向上させるためのアイデア・応じたコンパイル手法の拡張のアイデアをPPL2023で発表した。(関数型言語)Haskellのサブセットを提案機能で拡張した言語VLを設計した。VLではバージョニングの対象はモジュールである。各式の外部モジュールへの依存性はインターフェースに集約され、モジュール外に提供される。また検討を行った結果、当初の計画とは異なり、提案機能とパターンマッチに相互作用があることが明らかになった。本成果はVL言語処理系として実装され、現在執筆中の論文に纏め2023年末の国際会議に投稿予定である。 項目Ⅲ「既存言語のプログラミングと提案手法の接続」既存の関数型言語プログラムから式レベルの依存性情報を含むインターフェースを自動生成する手法Bundlingを提案した。Bundlingは各バージョンのトップレベル式の持つバージョン情報を集約する。本成果はCOP2023で発表しVL言語の言語処理系の一部として実装された。本成果は現在執筆中の論文に纏め、2023年末の国際会議に投稿予定である。
|
Research Progress Status |
翌年度、交付申請を辞退するため、記入しない。
|
Strategy for Future Research Activity |
翌年度、交付申請を辞退するため、記入しない。
|