• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2022 年度 実施状況報告書

モジュール間の安全な相互作用を可能にするメタプログラミング言語機構

研究課題

研究課題/領域番号 20K11757
研究機関神奈川大学

研究代表者

馬谷 誠二  神奈川大学, 理学部, 准教授 (40378831)

研究期間 (年度) 2020-04-01 – 2024-03-31
キーワード静的解析 / 抽象解釈 / メタプログラミング / 遷移系
研究実績の概要

今年度は,優れたメタプログラミング(マクロ)機能を備えたプログラミング言語の一つであるRacket言語を対象に,メタプログラムをより正確に静的解析するための抽象解釈器の実装を行った.また,実装においては,様々な設計変更にも柔軟に対応できるよう,その内部に低水準な遷移系記述システムを構築した.
健全な手続き的マクロを備えたプログラミング言語のセマンティクスは通常の言語と比べて複雑であり,高度なマクロをその上で正しく記述することは必ずしも容易ではない.そのため,マクロの動作を正確に把握するための静的解析
ツールは,プログラマにとって有益な道具の一つと言える.本論文では,健全な手続き的マクロを備えたモダンなLisp系言語であるRacketの抽象解釈フレームワークを提案する.提案フレームワークは,言語機能やデータドメインをモジュラーに定義可能なDSLを内部に含んでおり,解析したい性質や解析精度を用途に応じて柔軟に切り替えることが可能である.また,内部DSLは高度な表現力を備えながら実行時間を犠牲にしておらず,その上で実現した抽象解釈器
を実用的ツールの内部モジュールとしてそのまま利用できる.
遷移系は,プログラミング言語処理系等,様々なシステムソフトウェアの核として存在する.小さなシステムのformalな定義は理解しやすく検証も容易であるが,実システム中に存在する遷移系は規模が大きいこともあり,その拡張性・効率性も重要と言える.本論文では,実システムへの組み込み用途に耐えうるだけの効率性と拡張性を備えた遷移系を簡潔に記述可能なDSLを提案する.プログラミング言語の意味論を実例に挙げ拡張性の高さを例証し,また,先行研
究のツールとの比較を行い,我々のDSLが大幅な速度向上を達成できていることも確認した.

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

Racket言語の構文変換機能(マクロ)を含む動作をdefinitional interpreterとして表現し,それに基づく抽象解釈フレームワークが今年度完成している.
また,言語処理系内部遷移を扱うためのより低水準フレームワーク(ドメイン特化言語)を構築し,今後の設計変更にも柔軟に対応可能なシステムとなっている.

今後の研究の推進方策

解析器の実行効率向上,高精度な解析を実現するための抽象ドメインの定義,展開フェーズ毎に独立した抽象ドメインの利用,モジュール解析等の研究を引き続き続ける予定である.

次年度使用額が生じた理由

コロナ禍の状況にあり、学会発表や学会参加に必要となる旅費がかからなかったため。 また、研究に使用するサーバの購入についても、当初想定していた性能を備えながら、なおかつ、安価な新製品が手に入ったため、使用額が少額で済んだ。 次年度は、旅費についてはコロナ禍の収束の予測が困難であるが、引き続き、必要に応じて柔軟に使用するよう準備したい。 備品については、ノートPCの購入を検討する。

  • 研究成果

    (1件)

すべて 2023

すべて 学会発表 (1件)

  • [学会発表] 健全な手続き的マクロの抽象解釈フレームワーク2023

    • 著者名/発表者名
      馬谷 誠二
    • 学会等名
      第25回プログラミングおよびプログラミング言語ワークショップPPL 2023

URL: 

公開日: 2023-12-25  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi