多言語・多開発環境に対応する実用的ライブプログラミングシステムの構築手法
【研究キーワード】
ライブプログラミング / 言語実現フレームワーク / Truffle / Graal / Kanon / 可視化 / プログラム可視化 / 言語サーバ規約 / メタ言語フレームワーク
【研究成果の概要】
研究計画に従ってライブプログラミング環境Kanonの多言語・多開発環境のための開発と、効率的な実行方式についての研究を進めた。
処理系の開発に関しては、昨年度までの研究で構築した処理系のモジュール化を進め、今後の研究に備えた。特にユーザインタフェース部分を最新のライブラリに置き換えること、配置アルゴリズムを交換可能なモジュールとすることを行い、実験用のコード例を挿入する機能などを追加した。この作業はRAとして雇用した博士課程学生が主に担当し、オープンソースソフトウェアとして公開した。
実行方式については、Kanon処理系が行っているオブジェクトグラフの収集をTruffle/Graalフレームワーク上で動作するJavaScript言語処理系を改変する方法を提案し、その基本的な実現の作成および効率的なデータ表現方法を示した。これまでの処理系ではプログラム変換による収集を行っていたのに対し今回提案した方式は(1)言語処理系内部での収集を行うため、将来様々な最適化を行うことが容易になること(2)基本ライブラリのようにソースコードが存在しないプログラムに対しても適用可能なこと(3)Truffleフレームワークで実現されているJavaScript以外の言語にも将来適用可能となることといった特徴がある。この成果は情報処理学会プログラミング研究会において発表され、同学会英文論文誌Journal of Information Processingへの掲載が決定している。
また上記の研究に並行する形で、様々なプログラミング環境の形態を検討するために (a) 問題分析段階、即ちプログラムを書くよりも前の段階のための視覚的な「プログラミング環境」Mioの作成や、(b) プログラム理解作業時のメモ作成を支援する CodeMap 環境の提案も行った。
【研究代表者】
【研究種目】挑戦的研究(萌芽)
【研究期間】2020-07-30 - 2023-03-31
【配分額】6,110千円 (直接経費: 4,700千円、間接経費: 1,410千円)