paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Verified Density Compilation for a Probabilistic Programming Language

概率编程语言的验证密度编译
PLDI 7(PLDI)2023匹配度 5/10 · 论文涉及概率编程语言的编译器形式化验证(Coq 验证 Stan 子集),与用户关注的贝叶斯/概率编程语言及形式化验证有部分重叠;但它既未涉及 LLM/Agent 改进静态分析或形式化验证,也不是浮点程序分析或面向 ML/Agentic 程序的静态分析,核心方向与用户当前追的问题仅有间接关联。引用 6 inbox
Joseph Tassarotti, Jean-Baptiste Tristan
crossref: 2026-09-10

AI 速览

一句话:提出 ProbCompCert:用 Coq 验证 Stan 子集概率编程语言编译器的关键遍,并发现 Stan 手册错误。

本文关注概率编程语言(PPL)编译器正确性问题。由于 PPL 的概率特性,编译器错误往往难以检测和修复,而验证其编译正确性又需要新方法,因为 PPL 中的某些变换与传统语言差异显著。作者提出 ProbCompCert,一个面向 Stan 语言子集的编译器,并在 Coq 证明助手中对若干关键编译遍进行形式化验证。论文介绍了用于验证这类概率变换的技术及其在 ProbCompCert 中的应用。验证过程中,作者还发现 Stan 语言参考手册中与某个关键语言构造的语义和实现相关的错误。

问题
概率编程语言编译器中的错误难以检测和修复,且概率变换的正确性证明缺乏现成技术。
方法
在 Coq 中构建 ProbCompCert,为 Stan 子集实现并机器化验证若干关键编译遍,提出验证概率变换的技术。
评估
通过 Coq 形式化验证编译器关键遍,并在验证过程中发现 Stan 语言参考手册中一个关键语言构造的语义与实现错误。
原文摘要(Abstract)

This paper presents ProbCompCert, a compiler for a subset of the Stan probabilistic programming language (PPL), in which several key compiler passes have been formally verified using the Coq proof assistant. Because of the probabilistic nature of PPLs, bugs in their compilers can be difficult to detect and fix, making verification an interesting possibility. However, proving correctness of PPL compilation requires new techniques because certain transformations performed by compilers for PPLs are quite different from other kinds of languages. This paper describes techniques for verifying such transformations and their application in ProbCompCert. In the course of verifying ProbCompCert, we found an error in the Stan language reference manual related to the semantics and implementation of a key language construct.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1936,
  title = {Verified Density Compilation for a Probabilistic Programming Language},
  author = {Joseph Tassarotti and Jean-Baptiste Tristan},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {PLDI},
  year = {2023},
  doi = {10.1145/3591245}
}