Project/Area Number |
20K11757
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Allocation Type | Multi-year Fund |
Section | 一般 |
Review Section |
Basic Section 60050:Software-related
|
Research Institution | Kanagawa University |
Principal Investigator |
馬谷 誠二 神奈川大学, 情報学部, 准教授 (40378831)
|
Project Period (FY) |
2020-04-01 – 2025-03-31
|
Project Status |
Granted (Fiscal Year 2023)
|
Budget Amount *help |
¥4,290,000 (Direct Cost: ¥3,300,000、Indirect Cost: ¥990,000)
Fiscal Year 2022: ¥1,170,000 (Direct Cost: ¥900,000、Indirect Cost: ¥270,000)
Fiscal Year 2021: ¥1,690,000 (Direct Cost: ¥1,300,000、Indirect Cost: ¥390,000)
Fiscal Year 2020: ¥1,430,000 (Direct Cost: ¥1,100,000、Indirect Cost: ¥330,000)
|
Keywords | 静的解析 / 抽象解釈 / メタプログラミング / 遷移系 / インタプリタ / コンパイラ / プログラミング言語 / プログラム解析 / アクセス制御 |
Outline of Research at the Start |
本研究では,自分自身の言語処理系の実装を含めたモジュール間の相互作用の安全性を保証する言語機構の開発という課題に取り組む.とりわけ,動的プログラミング言語は静的な型検査の恩恵を受けられないことに加え,リフレクション機構や実行時コード生成など一種のメタプログラミング機能を備えていることが多い.メタプログラミング機能を利用するアプリケーションの安全性を保証するには,処理系内部をアプリケーションと同等に検査する手法の構築は不可欠であり,本研究の重要課題の一つである.
|
Outline of Annual Research Achievements |
前年度までの成果に基づき,マクロ機能を利用するコードに対する解析精度の向上を図るため,抽象構文オブジェクトの抽象領域に関する設計・考察を進めた.これまで構文オブジェクトの抽象領域は,Racket上で実装済みのコード上で実行可能であることを優先し,Racketの構造体型等の組み合わせによって表現されていた.今年度は,それらの表現の改良を検討するのにより相応しい表現として,高度な静的型を持つHaskell上の代数データ型による表現を新たに用いることにした.数学的定義により近づけることで,改良するべき本質部分とそれ以外の部分の整理ができ,解析目的に応じて,たとえば抽象領域のよりコンパクトな表現を検討する際,データ型中の各要素の取捨選択の判断が以前よりしやすくなっていると期待できる. また,前年度までに実装済みの,抽象解釈器におけるプログラムの内部動作を遷移系によって詳細に記述する低水準ツールの有効性や実用性を検証した.具体的には,ラムダ計算をベースにした関数型言語,Racketのマクロ展開フェーズを含んだ実行モデルの操作的意味論を用い,それらの遷移系をツール上に実装した.実装においては,ツールの特徴である拡張性(モジュラー性や再利用性など)を最大限に活用し,細分化されたコンポーネントの合成を繰り返すことによって全体の遷移系が構築されているよう配慮している.そうすることで,拡張性を実際に多く利用することで実行性能に対する過剰なオーバヘッドとなっていないかを実証できる.実際,同様の記述を既存の類似ツール上でも実行したところ,そちらと比較し我々のツールが実行効率の面で大幅に優位であることの確認ができた.
|
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 |
前年度に引き続き,マクロに強く依存するプログラムコードに対する解析精度の向上を目指す.具体的には,抽象構文オブジェクトの表現方法のさらなる改善とその定式化,および,展開フェーズ単位の抽象ドメインの独立化についての検討を引き続き実施する. また,作成した各種ツールの有効性の検証についても,さらに様々なプログラミング言語も対象に含めることで,引き続き継続する.
|