Project/Area Number |
23K24819
|
Project/Area Number (Other) |
22H03563 (2022-2023)
|
Research Category |
Grant-in-Aid for Scientific Research (B)
|
Allocation Type | Multi-year Fund (2024) Single-year Grants (2022-2023) |
Section | 一般 |
Review Section |
Basic Section 60050:Software-related
|
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
|
Project Status |
Granted (Fiscal Year 2024)
|
Budget Amount *help |
¥17,290,000 (Direct Cost: ¥13,300,000、Indirect Cost: ¥3,990,000)
Fiscal Year 2025: ¥3,900,000 (Direct Cost: ¥3,000,000、Indirect Cost: ¥900,000)
Fiscal Year 2024: ¥4,290,000 (Direct Cost: ¥3,300,000、Indirect Cost: ¥990,000)
Fiscal Year 2023: ¥4,420,000 (Direct Cost: ¥3,400,000、Indirect Cost: ¥1,020,000)
Fiscal Year 2022: ¥4,680,000 (Direct Cost: ¥3,600,000、Indirect Cost: ¥1,080,000)
|
Keywords | プログラム生成 / プログラム特化 / 依存型 / 仕様記述 / プログラム解析・検証 / 型システム / プログラム解析 / メタプログラミング / ヘテロジニアス・コード生成 / 段階的計算 / 暗号実装 / 計算エフェクト / オフショアリング |
Outline of Research at the Start |
暗号、データベース、画像処理など個々の領域における高性能プログラムを開発するためには、特定の領域ごとに特化したプログラムを生成する「プログラム生成法」が非常に有効であることをが知られている。本研究は、このプログラム生成法を大幅に発展させるため、「生成されるプログラムのサイズ」や「生成されるプログラムの計算誤差」など、量的情報を的確に表現できるシステムを構築して、それらの量に関する推論を行いながら、最適なプログラムを生成する方法を構築するものであり、研究目的が達成されれば、高性能・高信頼プログラムを必要とする様々な応用領域の発展に貢献するものである。
|
Outline of Annual Research Achievements |
本研究の目的は、プログラム生成の技法とシステムを洗練・深化させることであり、特に、生成されるプログラムに関する様々な情報に基づいて、選択的に最適なプログラムを生成するための系統的方法を確立することである。検討対象とする情報は、プログラムのサイズ、値や誤差が取り得る範囲、計算量、計算結果を表す数式などである。 研究2年目となる2023年度の研究では、値が取り得る範囲(インターバル)や計算結果を表す数式をプログラム生成時に生成して、プログラム解析や検証を系統的に行う研究を行い、特に、次世代暗号の低レベル実装の生成において、高い性能を持ち正しさが保証されたコードを系統的に生成する手法を確立し、学術雑誌Science of Computer Programmingにおいて発表した。また、この成果の有効性を実験的に示すため、様々な暗号パラメータ、SIMDアーキテクチャ、アルゴリズム、データ表現(ビット長、符号つき/なし)の組み合わせに対して本研究の手法を適用して、高性能で正しいコードを生成できることを示した。 また、プログラム生成のための言語・システム実装の研究を進め、MetaOCaml言語を用いてC言語のサブセットを生成するためのヘテロジニアス・コード生成機能の設計と実装した。さらに、従来の静的型付け言語の範囲を超えたプログラム生成の可能性を探るため、静的・動的型付けをあわせ持つTypeScript言語にコード生成機能を追加した言語の設計と実装を行った。これらの言語実装により、保守性が高く高性能コードを生成するためのプログラム生成の適用範囲を広げることに成功した。これらの言語に基づいて、プログラムサイズなどの情報に基づいた選択的なプログラム生成を行うための手法について、基礎的な検討を行った。
|
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 |
これまでの研究では研究代表者と2名の研究分担者が比較的独立して研究を推進してきたので、今後は、これら3名とそれぞれの研究協力者の連携を強化し、研究目的であるプログラム生成法の新しい段階の開拓に向けて研究を行う。オンラインミーティングのほか、研究集会等を開催して、対面での討論を充実させ、システム設計・実装・実問題への応用などについて協力しながら研究を推進する。
|