2022 Fiscal Year Annual Research Report
Multi-Stage Programming with Dependent Types: Theory and Implementation
Project/Area Number |
22H03563
|
Allocation Type | Single-year Grants |
Research Institution | University of Tsukuba |
Principal Investigator |
亀山 幸義 筑波大学, システム情報系, 教授 (10195000)
|
Co-Investigator(Kenkyū-buntansha) |
浅井 健一 お茶の水女子大学, 基幹研究院, 教授 (10262156)
Kiselyov Oleg 東北大学, 情報科学研究科, 助教 (50754602)
|
Project Period (FY) |
2022-04-01 – 2026-03-31
|
Keywords | 段階的計算 / プログラム生成 / 型システム / 依存型 / プログラム解析・検証 / 計算エフェクト / オフショアリング |
Outline of Annual Research Achievements |
研究初年度となる2022年度は、本研究の基盤となる段階的計算体系において、計算リソース(メモリ量など)や生成されたコードのサイズ・性能などの量を扱うプログラム生成技法とその実例について調査を行った。特に、依存型を用いない従来型の型システムにおいてこれらの量的な情報をもとに質の高いプログラムを生成したりプログラム解析・検証を行った成功例について詳細に検討を行った。そのような研究の1つとして、亀山らが開発してきたプログラム生成・解析・検証を統一して行うフレームワークについて、暗号分野の適用事例をさらに洗練させて性能向上を果たした。特に、従来は、数論的変換関数だけの実装にとどまっていたのに対し、本研究では、多項式乗算など、より大きな関数を適用対象として、高性能コードの生成とその正しさの検証を同時に達成することに成功した。 上記と並行して、コード重複を回避する段階的計算において重要となる計算エフェクトについて理論・実装の両面からの研究を行い、代数的エフェクトと限定継続コントロールオペレータの関係を解明したり、限定継続コントロールオペレータに関する統一的型システムを与えることに成功した。 さらに、高性能コード生成において鍵となる技術の1つである「オフショアリング」の実装および応用例の作成を進めた。オフショアリングは、コード生成器を記述する高レベル言語と、生成されるコードを記述する低レベル言語の橋渡しをする技術であり、現代的な高性能コードの生成においては必須とされる技術である。段階的計算を実現するプログラミング言語MetaOCamlにオフショアリング機能を標準装備することに生成するとともに、C言語へのオフショアリングに関する従来手法において変数の取り扱いに問題がある事を発見して、改善手法を提案した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
異なる機関に属する研究代表者と2名の研究分担者の間のコミュニケーションが適切にとれており、直接顔を合わせての集会を開催することができ、本研究の目指すべき方向、現時点の技術動向、今後の展開についての意識合わせがしっかりとできている。このグループでの研究集会を継続して開催することも合意している。 研究成果としての論文業績も一定の本数出ており、現在のところは異なる機関をまたがっての共著論文はないが、相互の研究内容を深く知ることができており、本科研費を軸にした今後の研究の展開を展望できている。
|
Strategy for Future Research Activity |
本研究の主題である依存型などの精密な型を用いて、生成されるコードの質を高めることを目的とした研究を推進する。研究分担者Kiselovが提唱したtagless final法を基盤として、依存型を持つ言語である Coq や Agdaに展開することにより、上記の研究目的を達成することを目指す。研究メンバー3名はこれらの技術の1つ以上に強みを持っており、3名の連携により、研究を行う。
|
Research Products
(14 results)