paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming

Roulette:一种表达力强、精确且高效的离散概率编程语言
PLDI 9(PLDI)2025匹配度 5/10 · 论文属于离散概率编程语言与精确推断,与用户关注的贝叶斯程序分析有间接交集,且兼具形式化证明和工程实现;但未涉及 LLM/Agent、静态分析、浮点程序分析或工业落地,不是核心方向。引用 3 inbox
Cameron Moy, Jack Czenszak, John M. Li, Brianna Marshall, Steven Holtzen
crossref: 2026-09-10

AI 速览

一句话:提出 Roulette,首个兼具高性能精确推断与通用语言特性的离散概率编程语言。

高风险或验证场景要求概率程序支持精确推断,但高性能精确推断引擎难以实现,导致现有精确概率编程语言功能受限。Roulette 是首个兼顾高性能精确推断与通用语言特性的离散概率编程语言。其核心洞见是精确概率推断与 Rosette 符号求值策略紧密相关,故通过扩展 Rosette 求解器辅助系统处理概率量。Roulette 支持 Racket 的较大子集,包括数据结构、一等函数、必终止递归、可变状态、模块与宏,以及有限离散随机变量、条件化和顶层推断。作者将 Rosette 正确性证明推广到概率情形以证明 Roulette 可靠,并在示例上展示可扩展性与表达力。

问题
现有支持精确推断的概率编程语言因实现高性能精确推断引擎困难而功能受限,缺乏通用语言特性;高风险或验证场景却需要精确推断。
方法
Roulette 利用精确概率推断与 Rosette 符号求值之间的联系,扩展 Rosette 求解器辅助系统以处理概率量,并支持 Racket 子集及离散概率特性。
评估
作者将 Rosette 正确性证明推广到概率情形以证明可靠性,并通过多个示例展示 Roulette 的可扩展性与表达力。
原文摘要(Abstract)

Exact probabilistic inference is a requirement for many applications of probabilistic programming languages (PPLs) such as in high-consequence settings or verification. However, designing and implementing a PPL with scalable high-performance exact inference is difficult: exact inference engines, much like SAT solvers, are intricate low-level programs that are hard to implement. Due to this implementation challenge, PPLs that support scalable exact inference are restrictive and lack many features of general-purpose languages. This paper presents Roulette, the first discrete probabilistic programming language that combines high-performance exact inference with general-purpose language features. Roulette supports a significant subset of Racket, including data structures, first-class functions, surely-terminating recursion, mutable state, modules, and macros, along with probabilistic features such as finitely supported discrete random variables, conditioning, and top-level inference. The key insight is that there is a close connection between exact probabilistic inference and the symbolic evaluation strategy of Rosette. Building on this connection, Roulette generalizes and extends the Rosette solver-aided programming system to reason about probabilistic rather than symbolic quantities. We prove Roulette sound by generalizing a proof of correctness for Rosette to handle probabilities, and demonstrate its scalability and expressivity on a number of examples.

链接与引用

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

BibTeX
@article{paperbot3118,
  title = {Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming},
  author = {Cameron Moy and Jack Czenszak and John M. Li and Brianna Marshall and Steven Holtzen},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {PLDI},
  year = {2025},
  doi = {10.1145/3729334}
}