Keskeiset käsitteet
ECMAScriptのJavaScript正規表現仕様を忠実に機械化し、安全性と信頼性を確保する。
Tiivistelmä
JavaScriptの正規表現(ECMA-262セクション22.2)をCoqで機械化した初の試み。
正規表現マッチングは常に終了し、安全であることが証明されている。
ECMAScriptの仕様に基づいて、コードと英文ステートメントを交互に使用してメカニゼーションが行われている。
潜在的な失敗操作や非局所操作もエラーモナドやジッパーコンテキストを使用して忠実にエンコードされている。
コンテンツの構造:
導入
JavaScript正規表現の重要性と複雑さ
ECMAScript正規表現マッチング
マッチャー関数と継続関数の制御フロー
新しい意味論的特性の導出とメカニゼーション
ECMAScript仕様の妥当性を確認するためにMatcher不変条件をメカニズム化
Tilastot
33ページ以上の疑似コードがCoq定義に変換された。
燃料ベースアプローチで非終了関数がエンコードされ、終了および失敗しないことが証明された。
Lainaukset
"Such assertions are used to make explicit algorithmic invariants that would otherwise be implicit." - ECMAScript 2023