研究課題/領域番号 |
22H03563
|
研究種目 |
基盤研究(B)
|
配分区分 | 補助金 |
応募区分 | 一般 |
審査区分 |
小区分60050:ソフトウェア関連
|
研究機関 | 筑波大学 |
研究代表者 |
亀山 幸義 筑波大学, システム情報系, 教授 (10195000)
|
研究分担者 |
浅井 健一 お茶の水女子大学, 基幹研究院, 教授 (10262156)
Kiselyov Oleg 東北大学, 情報科学研究科, 助教 (50754602)
|
研究期間 (年度) |
2022-04-01 – 2026-03-31
|
研究課題ステータス |
交付 (2023年度)
|
配分額 *注記 |
17,290千円 (直接経費: 13,300千円、間接経費: 3,990千円)
2023年度: 4,420千円 (直接経費: 3,400千円、間接経費: 1,020千円)
2022年度: 4,680千円 (直接経費: 3,600千円、間接経費: 1,080千円)
|
キーワード | プログラム生成 / プログラム特化 / 型システム / 依存型 / 仕様記述 / 段階的計算 / プログラム解析・検証 / 計算エフェクト / オフショアリング |
研究開始時の研究の概要 |
プログラム生成法は、特定のパラメータへの特化や、応用領域に応じた最適化により、効率良いプログラムを生成する手法である。この手法は高性能計算のカーネル部分の生成などで大きな成功をおさめてきたが、複雑・大規模なプログラムの生成においては、生成されるプログラムのサイズや計算量を意識した選択を適切に行う必要があり従来手法は不十分である。本研究は、この選択を系統的・自動的に行う手法を開発すること、また、その選択により生成されたプログラムの性質を静的に保証する型システムを構築することを主たる目的として、依存型を持つ型システムに基づく多段階算体系の理論・言語・システムを構築する。
|
研究実績の概要 |
研究初年度となる2022年度は、本研究の基盤となる段階的計算体系において、計算リソース(メモリ量など)や生成されたコードのサイズ・性能などの量を扱うプログラム生成技法とその実例について調査を行った。特に、依存型を用いない従来型の型システムにおいてこれらの量的な情報をもとに質の高いプログラムを生成したりプログラム解析・検証を行った成功例について詳細に検討を行った。そのような研究の1つとして、亀山らが開発してきたプログラム生成・解析・検証を統一して行うフレームワークについて、暗号分野の適用事例をさらに洗練させて性能向上を果たした。特に、従来は、数論的変換関数だけの実装にとどまっていたのに対し、本研究では、多項式乗算など、より大きな関数を適用対象として、高性能コードの生成とその正しさの検証を同時に達成することに成功した。 上記と並行して、コード重複を回避する段階的計算において重要となる計算エフェクトについて理論・実装の両面からの研究を行い、代数的エフェクトと限定継続コントロールオペレータの関係を解明したり、限定継続コントロールオペレータに関する統一的型システムを与えることに成功した。 さらに、高性能コード生成において鍵となる技術の1つである「オフショアリング」の実装および応用例の作成を進めた。オフショアリングは、コード生成器を記述する高レベル言語と、生成されるコードを記述する低レベル言語の橋渡しをする技術であり、現代的な高性能コードの生成においては必須とされる技術である。段階的計算を実現するプログラミング言語MetaOCamlにオフショアリング機能を標準装備することに生成するとともに、C言語へのオフショアリングに関する従来手法において変数の取り扱いに問題がある事を発見して、改善手法を提案した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
異なる機関に属する研究代表者と2名の研究分担者の間のコミュニケーションが適切にとれており、直接顔を合わせての集会を開催することができ、本研究の目指すべき方向、現時点の技術動向、今後の展開についての意識合わせがしっかりとできている。このグループでの研究集会を継続して開催することも合意している。 研究成果としての論文業績も一定の本数出ており、現在のところは異なる機関をまたがっての共著論文はないが、相互の研究内容を深く知ることができており、本科研費を軸にした今後の研究の展開を展望できている。
|
今後の研究の推進方策 |
本研究の主題である依存型などの精密な型を用いて、生成されるコードの質を高めることを目的とした研究を推進する。研究分担者Kiselovが提唱したtagless final法を基盤として、依存型を持つ言語である Coq や Agdaに展開することにより、上記の研究目的を達成することを目指す。研究メンバー3名はこれらの技術の1つ以上に強みを持っており、3名の連携により、研究を行う。
|