研究課題/領域番号 |
23K11057
|
研究種目 |
基盤研究(C)
|
配分区分 | 基金 |
応募区分 | 一般 |
審査区分 |
小区分60050:ソフトウェア関連
|
研究機関 | 早稲田大学 |
研究代表者 |
上田 和紀 早稲田大学, 理工学術院, 教授 (10257206)
|
研究分担者 |
山本 直輝 早稲田大学, 理工学術院, 助手 (50960308)
|
研究期間 (年度) |
2023-04-01 – 2026-03-31
|
研究課題ステータス |
交付 (2023年度)
|
配分額 *注記 |
4,680千円 (直接経費: 3,600千円、間接経費: 1,080千円)
2025年度: 1,170千円 (直接経費: 900千円、間接経費: 270千円)
2024年度: 1,820千円 (直接経費: 1,400千円、間接経費: 420千円)
2023年度: 1,690千円 (直接経費: 1,300千円、間接経費: 390千円)
|
キーワード | 高水準モデリング言語 / グラフ書換え / 言語処理系 / モデル検査 / 静的解析 |
研究開始時の研究の概要 |
研究代表者は,非手続き型高水準プログラミング言語の新たな方向の開拓を目指し,高い汎用性をもちながら通常の言語が直接サポートしないグラフ構造を扱う言語の設計と処理系・検証系の実装に取り組んできた.その過程で,言語の意味論研究の深化と解析技術の蓄積,および利用経験の蓄積が進み,言語とプログラムの性質を深く活かした次世代の実装技術と応用を開拓する土壌が形成されてきた.本研究では,これまでに蓄積してきたプログラム表現技術,多様な静的解析技術,実装技術の三者の協働を図ることにより,複雑なデータ構造の表現と操作,状態空間探索,並列実行機能をもち,かつ相互運用性を備えた言語処理系への世代交代を目指す.
|
研究実績の概要 |
高い汎用性をもちながら通常の高水準言語が直接サポートしないグラフ構造を扱うプログラミング言語・モデリング言語とそのための新たな解析・実装技術の開拓に取り組んだ.基盤となる言語として,階層グラフ書換え言語LMNtal,およびそのデータ構造をハイパーグラフに拡張したHyperLMNtalをとりあげた. 言語設計については,HyperLMNtalのハイパーグラフ構造を関数型プログラミングの枠組で扱う新たな言語λGTを新たに設計し,簡潔なプロトタイプ処理系を構築した.これによって,ハイパーグラフ構造とλ式の構造を互いの中に埋め込む方法を確立させた. 解析技術については,代数的データ型の範疇を超えるグラフ型の枠組に対して,概念設計および解析の両面から検討を進めた.概念設計においては,グラフ書換え規則の型安全性検査を大幅に軽量化する型の差分概念を提案し,型の差分に基づく解析手法の構築を進めた.また,与えられたグラフが型の生成文法から生成できるか否かの判定にtoken passingの考え方を導入するとともに,tokenの概念を拡張することで,threaded treeのような複雑な構造の解析が効率良くできることを示した. 実装技術については,まず,木構造よりも低い結合度をもつ非連結グラフ構造の書換えの実装最適化に取り組んだ.非連結構造の重要な応用はタプルの多重集合の書換えだが,連結グラフのように辺を辿る探索ができない.そこで,単調非減少な書換えルールに対して効率的に動作しかつC++等に変換可能なタプル書換えアルゴリズムを提案し評価した.また,再帰的生成規則で定義したグラフパターンのマッチング機能を備えたCSLMNtal言語について,プログラム実行過程で繰り返されるパターンマッチングを素朴に行うと発生する重複作業を削減するマッチングアルゴリズムを設計し,実際に計算量が改善されることを確認した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
グラフを扱う高水準言語の設計技術,解析技術,実装技術のそれぞれについて,多面的な研究成果を得ることができた.さらに,翌年度の研究につながる新たな設計・解析・実装技術の予備検討,およびグラフ表現を扱う多様な計算モデルとの関連付けに着手することができた.
|
今後の研究の推進方策 |
グラフを扱う高水準言語について,さらに抽象度の高いモデリングを可能とする量化 (quantification) 機能や否定条件の表現機能の導入についての初期的な知見を得ている.この知見をさらに深めつつ実装技術の開拓を行う. また,ラムダ計算,proof nets,string diagrams,bigraphs など,グラフに関係するさまざまな理論計算モデルと,本研究の基盤言語であるLMNtal/HyperlMNtalとの関連付けに着手している.この関連付けを本研究の基盤言語の重要な役割および用途と位置づけ,関連計算モデルの研究にも資する形での研究を推進する.
|