• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2021 Fiscal Year Annual Research Report

Theory and Application for Robust and High-Performance Systems Programming Languages

Research Project

Project/Area Number 21J20459
Allocation TypeSingle-year Grants
Research InstitutionThe University of Tokyo

Principal Investigator

松下 祐介  東京大学, 情報理工学系研究科, 特別研究員(DC1)

Project Period (FY) 2021-04-28 – 2024-03-31
Keywordsプログラム検証 / システムプログラミング / Rust
Outline of Annual Research Achievements

国際会議 ESOP 2020 に採択された主著論文 RustHorn (松下, 塚田 & 小林) の拡大改訂版がトップ国際ジャーナル ACM TOPLAS の ESOP 2020 特別号に採択され、出版された。
この研究は、システムプログラミング言語 Rust のプログラムの機能正当性を自動検証するための新しい手法を提案し、その正当性を証明し、また、この手法の有用性を実験的に確かめた。この手法の特色は、未来の情報を先取りする「預言」というアイデアにより、可変借用という仕組みを通したメモリの破壊的な更新がある状況でも、メモリやアドレスを具体的に扱わずに、簡潔にプログラムの振る舞いをモデル化できることである。
このジャーナル版は、会議版と比べて、全体的に説明が丁寧になっており、形式化が改善され、手法の健全性・完全性についての証明が含まれており、かつ、実験が拡充されている。

研究プロジェクト RustHornBelt を MPI-SWS の RustBelt チームとともに進め、その研究成果をまとめた主著論文 RustHornBelt (松下, Denis, Jourdan & Dreyer) がトップ国際会議 ACM PLDI 2022 に採択された。
この研究では、様々な API を含む Rust の広いサブセットに対して、RustHorn 方式のモデルの正しさ (健全性) を検証することができる、初めての形式的な基盤を与えた。特に、RustHorn 方式の預言を正当化するために、新しい論理的機構「パラメトリック預言」を開発した。この基盤は定理証明支援系 Coq 上で機械化されており、特に、様々な API に対する RustHorn 方式のモデルの正しさを機械的に証明した。

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

RustHorn の預言を用いたモデル化によるシステムプログラムの検証手法を更に発展させていくことが研究の一つの軸であるが、それにあたって、預言を用いたモデル化の正しさを柔軟に証明できるような手法がないことが大きなネックとなっていた。
研究プロジェクト RustHornBelt で開発した「パラメトリック預言」という新しい論理的機構は、これを柔軟に解決するものであり、これからシステムプログラムを検証するための仕組みを更に色々と設計していくうえで、重要な基礎となると期待される。
この研究を通して、定理証明支援系 Coq で本格的に何千行もの証明を書く経験をしたが、ここで得た知見と技術はこれから堅牢な検証プラットフォームを作っていく上で活きていくと期待される。また、具体的に様々な Rust API について証明を書く経験を得たことで、プログラム検証における落とし穴や苦労についての実地的な肌感覚を得られたことも大きい。
RustHornBelt の研究プロジェクトを通して、COVID-19 パンデミックの影響でオンラインでのやり取りとはなったものの、国際的な共同研究を経験し、さらにトップ国際会議 PLDI に採択されたことは、研究者としての力となった。

まだ正式に発表した結果はないものの、Rust のような型システムに対する型検査 (借用検査) のアルゴリズムの研究や、強力な検証機構を組み込んだシステムプログラミング言語の設計も着々と進めている。これから芽が出ることが期待される。

Strategy for Future Research Activity

6月に開催される国際会議 PLDI 2022 に参加し、主著論文 RustHornBelt の発表を行う。ここで世界の研究者たちや企業の人たちと交流し、今後の研究に繋げていきたい。

また、高階幽霊状態 (higher-order ghost state) を扱えて、かつ停止性・活性のような無限の実行の絡む性質も柔軟に検証できる、強力な分離論理の設計を進めていく。既存研究 Iris のような純粋に意味論的なアプローチではなく、構文論と意味論をほどよく織り交ぜることで、このような柔軟性を実現する。特に、この論理を、依存型付きプログラミング言語 Agda の上で機械的に形式化していく。機械的形式化により、紙の上での人力のチェックに留まらず、機械によって検査された堅牢な証明が書けるようになる。また、これは他の研究者にとっても、この論理体系を理解することを助けるものであり、知見を活かしやすくするものである。Agda は Coq と似た論理体系にもとづいた言語で、定理証明支援系として使えるが、Agda はプログラミング言語としての機能が特に充実しており、今回考える構文論を交えたアプローチと相性がいいと考えている。

この論理を基盤としながら、更に、システムプログラミングのための様々な型システム・検証フレームワークを設計していく予定である。特に、Rust のような型システムに対する型検査 (借用検査) のアルゴリズムの研究や、強力な検証機構を組み込んだシステムプログラミング言語の設計を進めていく。現実の Rust や C++ におけるシステムプログラミングの実践から積極的に学びながら、堅牢なシステムソフトウェア開発のための色々なアイデアを探究していく。

  • Research Products

    (4 results)

All 2022 2021 Other

All Int'l Joint Research (2 results) Journal Article (2 results) (of which Peer Reviewed: 1 results,  Open Access: 1 results)

  • [Int'l Joint Research] MPI-SWS(ドイツ)

    • Country Name
      GERMANY
    • Counterpart Institution
      MPI-SWS
  • [Int'l Joint Research] Paris-Saclay University(フランス)

    • Country Name
      FRANCE
    • Counterpart Institution
      Paris-Saclay University
  • [Journal Article] RustHornBelt: A Semantic Foundation for Functional Verification of Rust Programs with Unsafe Code2022

    • Author(s)
      Matsushita Yusuke、Denis Xavier、Jourdan Jacques-Henri、Dreyer Derek
    • Journal Title

      ACM PLDI 2022

      Volume: - Pages: 841-856

    • DOI

      10.1145/3519939.3523704

  • [Journal Article] RustHorn: CHC-based Verification for Rust Programs2021

    • Author(s)
      松下 祐介、塚田 武志、小林 直樹
    • Journal Title

      ACM Transactions on Programming Languages and Systems

      Volume: 43 Pages: 1~54

    • DOI

      10.1145/3462205

    • Peer Reviewed / Open Access

URL: 

Published: 2022-12-28   Modified: 2023-08-01  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi