Benjamin Sherman

dblp:205/7232 · DBLP profile ↗
← Back
7ranked-venue papers
3as first author
2since 2021 · last 2023
0009-0008-8673-0624ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 2 first-author · 1 since 2021Security and privacy · 1 · 1 since 2021Theory of computation · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
5 papers
Programming languages and type systems · 95% Compilers and program optimization · 5%
Network and information security
1 paper
Cryptographic protocols and secure computation · 100%
Artificial intelligence
2 papers
Probabilistic and Bayesian machine learning · 74% Deep learning architectures and training · 26%

Topics — the 12 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems
language semantics
0.822021
𝜆ₛ: computable semantics for differentiable programming with higher-order functions and datatypes · Proc. ACM Program. Lang. 2021
Computable decision making on the reals and other spaces: via partiality and nondeterminism · LICS 2018
Cryptographic protocols and secure computation › secure multiparty computation
MPC compiler
0.712023
COMBINE: COMpilation and Backend-INdependent vEctorization for Multi-Party Computation · CCS 2023
Cryptographic protocols and secure computation
secure multiparty computation
0.712023
COMBINE: COMpilation and Backend-INdependent vEctorization for Multi-Party Computation · CCS 2023
Machine learning › Probabilistic and Bayesian machine learning
probabilistic programming
0.412020
Reactive probabilistic programming · PLDI 2020
Programming languages and type systems › language semantics › formal semantics
denotational semantics
0.412020
Trace types and denotational semantics for sound programmable inference in probabilistic languages · Proc. ACM Program. Lang. 2020
Programming languages and type systems
probabilistic programming
0.412020
Trace types and denotational semantics for sound programmable inference in probabilistic languages · Proc. ACM Program. Lang. 2020
Programming languages and type systems › domain-specific languages
synchronous languages
0.412020
Reactive probabilistic programming · PLDI 2020
Programming languages and type systems
type systems
0.412020
Trace types and denotational semantics for sound programmable inference in probabilistic languages · Proc. ACM Program. Lang. 2020
Programming languages and type systems
exact real arithmetic
0.312018
Computable decision making on the reals and other spaces: via partiality and nondeterminism · LICS 2018
Programming languages and type systems › control structures
pattern matching
0.312018
Computable decision making on the reals and other spaces: via partiality and nondeterminism · LICS 2018
Compilers and program optimization
vectorization
0.212023
COMBINE: COMpilation and Backend-INdependent vEctorization for Multi-Party Computation · CCS 2023
Machine learning › Deep learning architectures and training
differentiable programming
0.112021
𝜆ₛ: computable semantics for differentiable programming with higher-order functions and datatypes · Proc. ACM Program. Lang. 2021

Methods — techniques the papers use, named apart from their topics

backend-independent compilation · 1.3lipschitz analysis · 1.0embedded language · 1.0partiality · 0.3nondeterminism · 0.3computable decision making · 0.3
YearPublicationVenuePosition
2023 COMBINE: COMpilation and Backend-INdependent vEctorization for Multi-Party Computation
abstract
Recent years have witnessed significant advances in programming technology for multi-party computation (MPC), bringing MPC closer to practice and wider applicability. Typical MPC programming frameworks focus on either front-end language design (e.g., Wysteria, Viaduct, SPDZ), or back-end protocol design and implementation (e.g., ABY, MOTION, MP-SPDZ).
Benjamin Levy, Benjamin Sherman, Lindsey Kennard, Ana L. Milanova, Vassilis Zikas
CCS3
2021 𝜆ₛ: computable semantics for differentiable programming with higher-order functions and datatypes
abstract
Deep learning is moving towards increasingly sophisticated optimization objectives that employ higher-order functions, such as integration, continuous optimization, and root-finding. Since differentiable programming frameworks such as PyTorch and TensorFlow do not have first-class representations of these functions, developers must reason about the semantics of such objectives and manually translate them to differentiable code. We present a differentiable programming language, λ S , that is the first to deliver a semantics for higher-order functions, higher-order derivatives, and Lipschitz but nondifferentiable functions. Together, these features enableλ S to expose differentiable, higher-order functions for integration, optimization, and root-finding as first-class functions with automatically computed derivatives. λ S ’s semantics is computable, meaning that values can be computed to arbitrary precision, and we implement λ S as an embedded language in Haskell. We use λ S to construct novel differentiable libraries for representing probability distributions, implicit surfaces, and generalized parametric surfaces – all as instances of higher-order datatypes – and present case studies that rely on computing the derivatives of these higher-order functions and datatypes. In addition to modeling existing differentiable algorithms, such as a differentiable ray tracer for implicit surfaces, without requiring any user-level differentiation code, we demonstrate new differentiable algorithms, such as the Hausdorff distance of generalized parametric surfaces.
Benjamin Sherman, Jesse Michel, Michael Carbin
Proc. ACM Program. Lang.1
2020 Reactive probabilistic programming
abstract
Synchronous modeling is at the heart of programming languages like Lustre, Esterel, or Scade used routinely for implementing safety critical control software, e.g., fly-by-wire and engine control in planes. However, to date these languages have had limited modern support for modeling uncertainty --- probabilistic aspects of the software's environment or behavior --- even though modeling uncertainty is a primary activity when designing a control system.
Guillaume Baudart, Louis Mandel, Eric Atkinson, Benjamin Sherman, Marc Pouzet, Michael Carbin
PLDI4
2020 Trace types and denotational semantics for sound programmable inference in probabilistic languages
abstract
Modern probabilistic programming languages aim to formalize and automate key aspects of probabilistic modeling and inference. Many languages provide constructs for programmable inference that enable developers to improve inference speed and accuracy by tailoring an algorithm for use with a particular model or dataset. Unfortunately, it is easy to use these constructs to write unsound programs that appear to run correctly but produce incorrect results. To address this problem, we present a denotational semantics for programmable inference in higher-order probabilistic programming languages, along with a type system that ensures that well-typed inference programs are sound by construction. A central insight is that the type of a probabilistic expression can track the space of its possible execution traces, not just the type of value that it returns, as these traces are often the objects that inference algorithms manipulate. We use our semantics and type system to establish soundness properties of custom inference programs that use constructs for variational, sequential Monte Carlo, importance sampling, and Markov chain Monte Carlo inference.
Alexander K. Lew, Marco F. Cusumano-Towner, Benjamin Sherman, Michael Carbin, Vikash Mansinghka 0001
Proc. ACM Program. Lang.3
2019 Sound and robust solid modeling via exact real arithmetic and continuity
abstract
Algorithms for solid modeling, i.e., Computer-Aided Design (CAD) and computer graphics, are often specified on real numbers and then implemented with finite-precision arithmetic, such as floating-point. The result is that these implementations do not soundly compute the results that are expected from their specifications. We present a new library, StoneWorks, that provides sound and robust solid modeling primitives. We implement StoneWorks in MarshallB, a pure functional programming language for exact real arithmetic in which types denote topological spaces and functions denote continuous maps, ensuring that all programs are sound and robust. We developed MarshallB as an extension of the Marshall language. We also define a new shape representation, compact representation ( K-rep ), that enables constructions such as Minkowski sum and analyses such as Hausdorff distance that are not possible with traditional representations. K-rep is a nondeterminism monad for describing all the points in a shape. With our library, language, and representation together, we show that short StoneWorks programs can specify and execute sound and robust solid modeling algorithms and tasks.
Benjamin Sherman, Jesse Michel, Michael Carbin
Proc. ACM Program. Lang.1
2018 Computable decision making on the reals and other spaces: via partiality and nondeterminism
abstract
Though many safety-critical software systems use floating point to represent real-world input and output, the mathematical specifications of these systems' behaviors use real numbers. Significant deviations from those specifications can cause errors and jeopardize safety. To ensure system safety, some programming systems offer exact real arithmetic, which often enables a program's computation to match its mathematical specification exactly. However, exact real arithmetic complicates decision-making: in these systems, it is impossible to compute (total and deterministic) discrete decisions based on connected spaces such as R. We present programming-language semantics based on constructive topology with variants allowing nondeterminism and/or partiality. Either nondeterminism or partiality suffices to allow computable decision making on connected spaces such as R. We then introduce pattern matching on spaces, a language construct for creating programs on spaces, generalizing pattern matching in functional programming, where patterns need not represent decidable predicates and also may overlap or be inexhaustive, giving rise to nondeterminism or partiality, respectively. Nondeterminism and/or partiality also yield formal logics for constructing approximate decision procedures. We extended the Marshall language for exact real arithmetic with these constructs and implemented some programs with it.
Benjamin Sherman, Luke Sciarappa, Adam Chlipala, Michael Carbin
LICS1
2017 Kami: a platform for high-level parametric hardware specification and its modular verification
abstract
It has become fairly standard in the programming-languages research world to verify functional programs in proof assistants using induction, algebraic simplification, and rewriting. In this paper, we introduce Kami, a Coq library that enables similar expressive and modular reasoning for hardware designs expressed in the style of the Bluespec language. We can specify, implement, and verify realistic designs entirely within Coq, ending with automatic extraction into a pipeline that bottoms out in FPGAs. Our methodology, using labeled transition systems, has been evaluated in a case study verifying an infinite family of multicore systems, with cache-coherent shared memory and pipelined cores implementing (the base integer subset of) the RISC-V instruction set.
Joonwon Choi, Muralidaran Vijayaraghavan, Benjamin Sherman, Adam Chlipala, Arvind 0001
Proc. ACM Program. Lang.3