核心概念
Minuskaは、言語定義から検証済みのインタプリタを生成することができる、形式的に検証されたプログラミング言語フレームワークである。
摘要
Minuskaは、プログラミング言語の形式的な意味論を記述し、それから検証済みのインタプリタを生成することができる、新しいプログラミング言語フレームワークである。
主な特徴は以下の通り:
- MinusLang - プログラミング言語の動作意味論を記述するための言語で、Coq内で定義されており、形式的な意味論を持つ。
- 任意の MinusLang 定義に対して、検証済みのインタプリタを生成する機能。
- インタプリタの正しさ(soundness と completeness)に関する定理が証明されている。
Minuskaは、K フレームワークに直接的に触発されたものだが、基礎理論として項書き換えシステムを採用しており、これにより、K フレームワークでは扱えなかった言語定義を表現できるようになっている。また、Minuskaの検証済みインタプリタは、K フレームワークの証明生成インタプリタと比べて、大幅に高速に動作する。
Minuskaは、プログラミング言語の意味論を形式的に記述し、それから検証済みのツールを自動生成するという、新しいアプローチを示している。これにより、言語定義の正しさと生成されたツールの正しさの両方を保証することができる。
統計資料
Minuskaのインタプリタは、K フレームワークの証明生成インタプリタと比べて、少なくとも20倍高速に動作する。
Minuskaの開発には約4人月を要した。
引述
"Minuskaは、実用的で、形式的に検証され、開発コストも低いプログラミング言語フレームワークを実現できる。"
"形式的な検証を活用することで、事後的な証明生成と検査を行う手法よりも、大幅に高性能なツールを実現できる。"