We are excited to announce our 2018 program, including an invited talk, an invited tutorial, and the following talks and posters. For more details on the schedule, see the Program tab. The extended abstracts for the talks and posters can be found at

Join our slack discussion at

Invited talk

Erik Meijer, Facebook

Software is eating the world, but ML is going to eat software

Abstract: “Democratizing ML” is a hot topic these days - particularly in industry. Efficiency, composability and accessibility of machine learning technology are active areas of investment for many research and product groups. Unfortunately, while machine learning has the potential to fundamentally improve how software is constructed, opportunities to leverage machine learning to improve more conventional developer tools (languages, compilers, and IDEs for example) have largely gone untapped. At Facebook we want to seize this opportunity. Our Developer Infrastructure team is on a mission to fundamentally rethink and retool Facebook’s developer toolchain by applying machine learning at every layer in our stack. Our goal is to make our developers more productive, and our processes and infrastructure more efficient, by deeply integrating ML into our programming languages and developer tools (such as IDEs, version control, or continuous integration systems) in novel ways. This talk will detail the work our team has done to improve developer efficiency and resource utilization at Facebook - from updating the Hack programming language to support probabilistic programming techniques, to developing a new suite of AI-driven developer tools. I’ll describe the lessons we’ve learned along the way, as well as future opportunities we see to optimize or auto-tune other common pieces of developer infrastructure.

Invited tutorial

Rif A. Saurous, Google, and Dustin Tran, Columbia University

Deep Probabilistic Programming: TensorFlow Distributions and Edward

Abstract: The TensorFlow Distribution and Edward libraries implement a vision of probability theory adapted to the modern deep-learning paradigm of end-to-end differentiable computation. We first introduce TensorFlow Distributions, an efficient low-level system for building and manipulating distributions. We focus on the non-obvious design choices in the library, paying particular attention to the Bijector abstraction, which supports composable volume-tracking transformations with automatic caching. We then provide an overview of Edward, a probabilistic programming system built on computational graphs and using Distributions as an efficient backend. In particular, we show how Edward and TensorFlow Distributions can be applied for expanding the frontier of deep generative models and variational inference.


  • Chris Heunen, Ohad Kammar, Sean Moss, Adam Scibior, Sam Staton, Matthijs Vákár and Hongseok Yang. The semantic structure of quasi-Borel spaces: algebra, logic, and recursion
  • Ekansh Sharma and Daniel Roy. Auxiliary variables in Probabilistic Programs
  • Praveen Narayanan and Chung‐chieh Shan. More support for symbolic disintegration
  • Daniel Selsam. Formal Methods For Probabilistic Programming
  • Steven Holtzen, Guy Van den Broeck and Todd Millstein. Probabilistic Program Inference With Abstractions
  • Michele Pagani, Thomas Ehrhard and Christine Tasson. Stable, measurable functions and probabilistic programs
  • Mitchell Wand, Theophilos Giannakopoulos, Andrew Cobb and Ryan Culpepper. Contextual Equivalence for a Probabilistic Language with Continuous Random Variables and Recursion
  • Maria I. Gorinova, Andrew D. Gordon and Charles Sutton. SlicStan: Improving Probabilistic Programming using Information Flow Analysis


  • Mahdi Azarafrooz. Deep Amortized Inference for Probabilistic Programs using Adversarial Compilation
  • Marco Cusumano-Towner and Vikash Mansinghka. Using probabilistic programs as proposals
  • Luke Ong and Matthijs Vákár. Game Semantics for Probabilistic Programs
  • Mathias Ruggaard Pedersen, Nathanaël Fijalkow, Giorgio Bacci, Kim Guldstrand Larsen and Radu Mardare. Comparing the speed of probabilistic processes
  • Joshua V. Dillon, Ian Langmore, Eugene Brevdo, Matt Hoffman, Dave Moore, Brian Patton, Rif A. Saurous, Dustin Tran and Srinivas Vasudevan. TensorFlow Distributions
  • Avi Pfeffer. Using Reinforcement Learning for Probabilistic Program Inference
  • Avi Pfeffer. The Support Method of Computing Expectations
  • Andres Molina-Markham. Probabilistic Models for Assured Position, Navigation and Timing
  • Javier Burroni, Arjun Guha and David Jensen. Interactive Writing and Debugging of Bayesian Probabilistic Programs
  • Benjamin Sherman, Jared Tramontano and Michael Carbin. Constructive probabilistic semantics with non-spatial locales
  • Tetsuya Sato. Reasoning about Divergences via Span-liftings
  • Steffen Smolka, David Kahn, Praveen Kumar, Nate Foster, Dexter Kozen and Alexandra Silva. Probabilistic Program Equivalence for NetKAT
  • Daniel Lundén, David Broman and Lawrence M. Murray. Combining static and dynamic optimizations using closed-form solutions
  • Nils Napp and Marco Gaboardi. Probabilistic Programming for Robotics


We are grateful to the ACM SIGLOG for generously sponsoring PPS registration costs for several of the student participants, and to Microsoft Research for generously sponsoring the workshop dinner.

Advertisement of related activities

Separately from PPS, during the POPL TutorialFest on Monday, 8 January 2018, Chung-chieh Shan will present a tutorial on Equational reasoning for probabilistic programming.

History of the PPS Workshop

While there have been a number of recent probabilistic programming meetings at Dagstuhl, NIPS, for the DARPA PPAML program, and elsewhere, many participants were interested in a deeper focus on semantics and other programming language issues. This lead to the formation of the PPS meeting colocated with POPL, which promotes the investigation of probabilistic programming from these PL perspectives, and exposes others in the PL community to probabilistic programming.

The first PPS workshop was held January 23, 2016 in St. Petersburg, FL, colocated with POPL and immediately before the DARPA PI meeting for the PPAML program:

The second PPS workshop was held January 17, 2017 in Paris, colocated with POPL, and sponsored by SIGPLAN and SIGLOG:

Each year has two chairs, one from the previous year, and the other of whom stays on for the next year. Other program committee members are different from the previous year, to promote a variety of perspectives on probabilistic programming.

Tue 9 Jan

09:00 - 10:00: PPS 2018 - SESSION I (invited talk) at Bradbury
Chair(s): Andrew D. Gordon
pps-2018151548480000009:00 - 10:00
10:00 - 10:30: PPS 2018 - POSTER SESSION (14 posters - not talks) at Bradbury
pps-2018151548840000010:00 - 10:02
pps-2018151548852900010:02 - 10:04
pps-2018151548865700010:04 - 10:06
pps-2018151548878600010:06 - 10:08
pps-2018151548891400010:08 - 10:10
pps-2018151548904300010:10 - 10:12
pps-2018151548917100010:12 - 10:15
Link to publication Pre-print
pps-2018151548930000010:15 - 10:17
pps-2018151548942900010:17 - 10:19
pps-2018151548955700010:19 - 10:21
Link to publication File Attached
pps-2018151548968600010:21 - 10:23
pps-2018151548981400010:23 - 10:25
pps-2018151548994300010:25 - 10:27
pps-2018151549007100010:27 - 10:30
14:00 - 15:30: PPS 2018 - SESSION III (invited tutorial + 1 talk) at Bradbury
Chair(s): Cameron Freer
pps-2018151550280000014:00 - 15:00
pps-2018151550640000015:00 - 15:30

Call for Extended Abstracts

PPS 2018: Probabilistic Programming Languages, Semantics, and Systems

Probabilistic programming is the idea of expressing probabilistic models and inference methods as programs, to ease use and reuse. The recent rise of practical implementations as well as research activity in probabilistic programming has renewed the need for semantics to help us share insights and innovations.

This workshop aims to bring programming-language and machine-learning researchers together to advance all aspects of probabilistic programming languages, semantics, and systems. Topics include but are not limited to:

  • design of probabilistic programming languages;
  • inference algorithms for probabilistic programming languages;
  • semantics (axiomatic, operational, denotational, games, etc) and types for probabilistic programming;
  • efficient and correct implementation;
  • and last but not least, applications of probabilistic programming.

For a sense of the talks and posters in past years, see:


In the tradition of the previous meetings, we anticipate that work on semantic foundations of probabilistic programming will be at the core of PPS 2018, but we are explicitly broadening the scope of PPS to embrace all aspects of probabilistic programming languages.

We expect this workshop to be informal, and our goal is to foster collaboration and establish common ground. Thus, the proceedings will not be a formal or archival publication, and we expect to spend only a portion of the workshop day on traditional research talks. In line with the SIGPLAN Republication Policy, inclusion in our informal proceedings is not intended to preclude later formal publication. Nevertheless, as a concrete basis for fruitful discussions, we call for extended abstracts describing specific and ideally ongoing work on probabilistic programming languages, semantics, and systems.

In line with the SIGPLAN Republication Policy, inclusion in our informal proceedings is not intended to preclude later formal publication.

Extended abstracts are up to 2 pages in PDF format. Please submit them by October 17 using EasyChair at

Important dates and the Program Committee are listed elsewhere on this page.

Accepted Papers

Link to publication File Attached
Link to publication Pre-print