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

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

研究課題

研究課題/領域番号 20K11757
研究種目

基盤研究(C)

配分区分基金
応募区分一般
審査区分 小区分60050:ソフトウェア関連
研究機関神奈川大学

研究代表者

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

研究期間 (年度) 2020-04-01 – 2025-03-31
研究課題ステータス 交付 (2023年度)
配分額 *注記
4,290千円 (直接経費: 3,300千円、間接経費: 990千円)
2022年度: 1,170千円 (直接経費: 900千円、間接経費: 270千円)
2021年度: 1,690千円 (直接経費: 1,300千円、間接経費: 390千円)
2020年度: 1,430千円 (直接経費: 1,100千円、間接経費: 330千円)
キーワード静的解析 / 抽象解釈 / メタプログラミング / 遷移系 / インタプリタ / コンパイラ / プログラミング言語 / プログラム解析 / アクセス制御
研究開始時の研究の概要

本研究では,自分自身の言語処理系の実装を含めたモジュール間の相互作用の安全性を保証する言語機構の開発という課題に取り組む.とりわけ,動的プログラミング言語は静的な型検査の恩恵を受けられないことに加え,リフレクション機構や実行時コード生成など一種のメタプログラミング機能を備えていることが多い.メタプログラミング機能を利用するアプリケーションの安全性を保証するには,処理系内部をアプリケーションと同等に検査する手法の構築は不可欠であり,本研究の重要課題の一つである.

研究実績の概要

前年度までの成果に基づき,マクロ機能を利用するコードに対する解析精度の向上を図るため,抽象構文オブジェクトの抽象領域に関する設計・考察を進めた.これまで構文オブジェクトの抽象領域は,Racket上で実装済みのコード上で実行可能であることを優先し,Racketの構造体型等の組み合わせによって表現されていた.今年度は,それらの表現の改良を検討するのにより相応しい表現として,高度な静的型を持つHaskell上の代数データ型による表現を新たに用いることにした.数学的定義により近づけることで,改良するべき本質部分とそれ以外の部分の整理ができ,解析目的に応じて,たとえば抽象領域のよりコンパクトな表現を検討する際,データ型中の各要素の取捨選択の判断が以前よりしやすくなっていると期待できる.
また,前年度までに実装済みの,抽象解釈器におけるプログラムの内部動作を遷移系によって詳細に記述する低水準ツールの有効性や実用性を検証した.具体的には,ラムダ計算をベースにした関数型言語,Racketのマクロ展開フェーズを含んだ実行モデルの操作的意味論を用い,それらの遷移系をツール上に実装した.実装においては,ツールの特徴である拡張性(モジュラー性や再利用性など)を最大限に活用し,細分化されたコンポーネントの合成を繰り返すことによって全体の遷移系が構築されているよう配慮している.そうすることで,拡張性を実際に多く利用することで実行性能に対する過剰なオーバヘッドとなっていないかを実証できる.実際,同様の記述を既存の類似ツール上でも実行したところ,そちらと比較し我々のツールが実行効率の面で大幅に優位であることの確認ができた.

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

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

理由

これまでの研究で実装済みの言語処理系の内部遷移を扱うための低水準フレームワーク(ドメイン特化言語)を用いて,実際にいくつかの言語の遷移を記述・評価し,その有効性を検証できている.

今後の研究の推進方策

前年度に引き続き,マクロに強く依存するプログラムコードに対する解析精度の向上を目指す.具体的には,抽象構文オブジェクトの表現方法のさらなる改善とその定式化,および,展開フェーズ単位の抽象ドメインの独立化についての検討を引き続き実施する.
また,作成した各種ツールの有効性の検証についても,さらに様々なプログラミング言語も対象に含めることで,引き続き継続する.

報告書

(4件)
  • 2023 実施状況報告書
  • 2022 実施状況報告書
  • 2021 実施状況報告書
  • 2020 実施状況報告書
  • 研究成果

    (7件)

すべて 2024 2023 2022 2021 2020

すべて 雑誌論文 (1件) (うち査読あり 1件、 オープンアクセス 1件) 学会発表 (6件) (うち国際学会 1件)

  • [雑誌論文] Work-Stealing Strategies That Consider Work Amount and Hierarchy2021

    • 著者名/発表者名
      Ryusuke Nakashima, Masahiro Yasugi, Hiroshi Yoritaka, Tasuku Hiraishi, Seiji Umatani
    • 雑誌名

      IPSJ Transaction on Programming(掲載決定)

      巻: -

    • NAID

      130008065250

    • 関連する報告書
      2020 実施状況報告書
    • 査読あり / オープンアクセス
  • [学会発表] Lightweight DSL for Describing Extensible Transition Systems2024

    • 著者名/発表者名
      Seiji Umatani
    • 学会等名
      The 39th ACM/SIGAPP Symposium On Applied Computing (SAC 2024)
    • 関連する報告書
      2023 実施状況報告書
    • 国際学会
  • [学会発表] 健全な手続き的マクロの抽象解釈フレームワーク2023

    • 著者名/発表者名
      馬谷 誠二
    • 学会等名
      第25回プログラミングおよびプログラミング言語ワークショップPPL 2023
    • 関連する報告書
      2022 実施状況報告書
  • [学会発表] Racket言語のための抽象解釈に向けて2022

    • 著者名/発表者名
      馬谷 誠二
    • 学会等名
      情報処理学会 第138回プログラミング研究発表会
    • 関連する報告書
      2021 実施状況報告書
  • [学会発表] Work-Stealing Strategies That Consider Work Amount and Hierarchy2021

    • 著者名/発表者名
      中嶋 隆介,八杉 昌宏,寄高 啓司,平石 拓,馬谷 誠二
    • 学会等名
      情報処理学会 第132回プログラミング研究発表会
    • 関連する報告書
      2020 実施状況報告書
  • [学会発表] 具象コード実行を伴う抽象解釈器の実行モデル2021

    • 著者名/発表者名
      馬谷 誠二
    • 学会等名
      情報処理学会 第133回プログラミング研究発表会
    • 関連する報告書
      2020 実施状況報告書
  • [学会発表] HOPE: 階層的計算省略に基づく耐障害性を備えた並列実行モデル2020

    • 著者名/発表者名
      八杉 昌宏,村岡 大輔,平石 拓,馬谷 誠二,江本 健斗
    • 学会等名
      日本ソフトウェア科学会第37回大会
    • 関連する報告書
      2020 実施状況報告書

URL: 

公開日: 2020-04-28   更新日: 2024-12-25  

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

Powered by NII kakenhi