Demo Data from EDBT 2026 / reviewers in the wild / expert
Claudio V. Russo
dblp:73/5035
· DBLP profile ↗
19ranked-venue papers
5as first author
0since 2021 · last 2018
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 17 · 5 first-authorTheory of computation · 4 · 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 · 75% Concurrent programming · 25% | |
| Artificial intelligence
3 papers |
Probabilistic and Bayesian machine learning · 100% | |
| Databases, data mining, and information retrieval
1 paper |
Data models and query languages · 77% Data integration and cleaning · 23% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Parallel and multicore computing · 100% |
Topics — the 17 heaviest of 20, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Machine learning › Probabilistic and Bayesian machine learning
probabilistic programming |
0.4 | 2 | 2016 | Fabular: regression formulas as probabilistic programming · POPL 2016 Tabular: a schema-driven probabilistic programming language · POPL 2014 |
Programming languages and type systems
domain-specific languages |
0.2 | 1 | 2016 | Fabular: regression formulas as probabilistic programming · POPL 2016 |
Programming languages and type systems
language design |
0.2 | 2 | 2013 | A model-learner pattern for bayesian reasoning · POPL 2013 Join patterns for visual basic · OOPSLA 2008 |
Machine learning › Probabilistic and Bayesian machine learning › statistical inference
bayesian inference |
0.2 | 1 | 2013 | A model-learner pattern for bayesian reasoning · POPL 2013 |
Programming languages and type systems
probabilistic programming |
0.2 | 1 | 2013 | A model-learner pattern for bayesian reasoning · POPL 2013 |
Programming languages and type systems › concurrent programming languages
coordination languages |
0.1 | 1 | 2011 | Scalable join patterns · OOPSLA 2011 |
Concurrent programming › concurrency theory › process calculi
join calculus |
0.1 | 1 | 2011 | Scalable join patterns · OOPSLA 2011 |
Concurrent programming › synchronization
synchronization primitives |
0.1 | 1 | 2011 | Scalable join patterns · OOPSLA 2011 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2011 | Scalable join patterns · OOPSLA 2011 |
Programming languages and type systems › language design
language constructs |
0.1 | 1 | 2008 | Join patterns for visual basic · OOPSLA 2008 |
Data integration and cleaning
imputation |
0.1 | 1 | 2014 | Tabular: a schema-driven probabilistic programming language · POPL 2014 |
Programming languages and type systems › functional programming › algebraic data types
generalized algebraic data types |
0.1 | 1 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 |
Programming languages and type systems
object-oriented programming |
0.1 | 1 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 |
Programming languages and type systems
type systems |
0.1 | 1 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 |
Machine learning › Probabilistic and Bayesian machine learning
probabilistic inference |
0.0 | 1 | 2013 | A model-learner pattern for bayesian reasoning · POPL 2013 |
Programming languages and type systems › language design
language extension |
0.0 | 1 | 2008 | Join patterns for visual basic · OOPSLA 2008 |
Programming languages and type systems › type systems
type soundness |
0.0 | 1 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 |
Methods — techniques the papers use, named apart from their topics
core calculus · 0.5probabilistic model expressions · 0.4formal semantics · 0.4join calculus · 0.3typed bayesian model · 0.3markov chain monte carlo · 0.3factor graph · 0.3exact inference · 0.3type systems · 0.2type system · 0.2polyphonic c# · 0.1cω · 0.1subclassing · 0.1generics · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Transposing G to C♯: Expressivity of generalized algebraic data types in an object-oriented language
Andrew J. Kennedy, Claudio V. Russo |
Theor. Comput. Sci. | 2 |
| 2017 | Deriving Probability Density Functions from Probabilistic Functional ProgramsabstractThe probability density function of a probability distribution is a fundamental concept in probability theory and a key ingredient in various widely used machine learning methods. However, the necessary framework for compiling probabilistic functional programs to density functions has only recently been developed. In this work, we present a density compiler for a probabilistic language with failure and both discrete and continuous distributions, and provide a proof of its soundness. The compiler greatly reduces the development effort of domain experts, which we demonstrate by solving inference problems from various scientific applications, such as modelling the global carbon cycle, using a standard Markov chain Monte Carlo framework. Sooraj Bhat, Johannes Borgström, Andrew D. Gordon 0001, Claudio V. Russo |
Log. Methods Comput. Sci. | 4 |
| 2016 | Fabular: regression formulas as probabilistic programmingabstractRegression formulas are a domain-specific language adopted by several R packages for describing an important and useful class of statistical models: hierarchical linear regressions. Formulas are succinct, expressive, and clearly popular, so are they a useful addition to probabilistic programming languages? And what do they mean? We propose a core calculus of hierarchical linear regression, in which regression coefficients are themselves defined by nested regressions (unlike in R). We explain how our calculus captures the essence of the formula DSL found in R. We describe the design and implementation of Fabular, a version of the Tabular schema-driven probabilistic programming language, enriched with formulas based on our regression calculus. To the best of our knowledge, this is the first formal description of the core ideas of R's formula notation, the first development of a calculus of regression formulas, and the first demonstration of the benefits of composing regression formulas and latent variables in a probabilistic programming language. Johannes Borgström, Andrew D. Gordon 0001, Long Ouyang, Claudio V. Russo, Adam Scibior, Marcin Szymczak 0002 |
POPL | 4 |
| 2015 | Probabilistic Programs as Spreadsheet Queries
Andrew D. Gordon 0001, Claudio V. Russo, Marcin Szymczak 0002, Johannes Borgström, Nicolas Rolland, Thore Graepel, Daniel Tarlow |
ESOP | 2 |
| 2014 | Tabular: a schema-driven probabilistic programming languageabstractWe propose a new kind of probabilistic programming language for machine learning. We write programs simply by annotating existing relational schemas with probabilistic model expressions. We describe a detailed design of our language, Tabular, complete with formal semantics and type system. A rich series of examples illustrates the expressiveness of Tabular. We report an implementation, and show evidence of the succinctness of our notation relative to current best practice. Finally, we describe and verify a transformation of Tabular schemas so as to predict missing values in a concrete database. The ability to query for missing values provides a uniform interface to a wide variety of tasks, including classification, clustering, recommendation, and ranking. Andrew D. Gordon 0001, Thore Graepel, Nicolas Rolland, Claudio V. Russo, Johannes Borgström, John Guiver |
POPL | 4 |
| 2014 | F-ing modulesabstractAbstract ML modules are a powerful language mechanism for decomposing programs into reusable components. Unfortunately, they also have a reputation for being “complex” and requiring fancy type theory that is mostly opaque to non-experts. While this reputation is certainly understandable, given the many non-standard methodologies that have been developed in the process of studying modules, we aim here to demonstrate that it is undeserved. To do so, we present a novel formalization of ML modules, which defines their semantics directly by a compositional “elaboration” translation into plain System F ω (the higher-order polymorphic λ-calculus). To demonstrate the scalability of our “F-ing” semantics, we use it to define a representative, higher-order ML-style module language, encompassing all the major features of existing ML module dialects (except for recursive modules). We thereby show that ML modules are merely a particular mode of use of System F ω . To streamline the exposition, we present the semantics of our module language in stages. We begin by defining a subset of the language supporting a Standard ML-like language with second-class modules and generative functors. We then extend this sublanguage with the ability to package modules as first-class values (a very simple extension, as it turns out) and OCaml-style applicative functors (somewhat harder). Unlike previous work combining both generative and applicative functors, we do not require two distinct forms of functor or signature sealing. Instead, whether a functor is applicative or not depends only on the computational purity of its body. In fact, we argue that applicative/generative is rather incidental terminology for pure versus impure functors. This approach results in a semantics that we feel is simpler and more natural than previous accounts, and moreover prohibits breaches of abstraction safety that were possible under them. Andreas Rossberg, Claudio V. Russo, Derek Dreyer |
J. Funct. Program. | 2 |
| 2013 | A model-learner pattern for bayesian reasoningabstractA Bayesian model is based on a pair of probability distributions, known as the prior and sampling distributions. A wide range of fundamental machine learning tasks, including regression, classification, clustering, and many others, can all be seen as Bayesian models. We propose a new probabilistic programming abstraction, a typed Bayesian model, which is based on a pair of probabilistic expressions for the prior and sampling distributions. A sampler for a model is an algorithm to compute synthetic data from its sampling distribution, while a learner for a model is an algorithm for probabilistic inference on the model. Models, samplers, and learners form a generic programming pattern for model-based inference. They support the uniform expression of common tasks including model testing, and generic compositions such as mixture models, evidence-based model averaging, and mixtures of experts. A formal semantics supports reasoning about model equivalence and implementation correctness. By developing a series of examples and three learner implementations based on exact inference, factor graphs, and Markov chain Monte Carlo, we demonstrate the broad applicability of this new programming pattern. Andrew D. Gordon 0001, Mihhail Aizatulin, Johannes Borgström, Guillaume Claret, Thore Graepel, Aditya V. Nori, Sriram K. Rajamani, Claudio V. Russo |
POPL | 8 |
| 2013 | Deriving Probability Density Functions from Probabilistic Functional Programs
Sooraj Bhat, Johannes Borgström, Andrew D. Gordon 0001, Claudio V. Russo |
TACAS | 4 |
| 2012 | Pause 'n' Play: Formalizing Asynchronous C#
Gavin M. Bierman, Claudio V. Russo, Geoffrey Mainland, Erik Meijer 0001, Mads Torgersen |
ECOOP | 2 |
| 2011 | Scalable join patternsabstractCoordination can destroy scalability in parallel programming. A comprehensive library of scalable synchronization primitives is therefore an essential tool for exploiting parallelism. Unfortunately, such primitives do not easily combine to yield solutions to more complex problems. We demonstrate that a concurrency library based on Fournet and Gonthier's join calculus can provide declarative and scalable coordination. By declarative, we mean that the programmer needs only to write down the constraints of a coordination problem, and the library will automatically derive a correct solution. By scalable, we mean that the derived solutions deliver robust performance both as the number of processors increases, and as the complexity of the coordination problem grows. We validate our claims empirically on seven coordination problems, comparing our generic solution to specialized algorithms from the literature. Aaron Turon, Claudio V. Russo |
OOPSLA | 2 |
| 2009 | Parallel concurrent MLabstractConcurrent ML (CML) is a high-level message-passing language that supports the construction of first-class synchronous abstractions called events. This mechanism has proven quite effective over the years and has been incorporated in a number of other languages. While CML provides a concurrent programming model, its implementation has always been limited to uniprocessors. This limitation is exploited in the implementation of the synchronization protocol that underlies the event mechanism, but with the advent of cheap parallel processing on the desktop (and laptop), it is time for Parallel CML. John H. Reppy, Claudio V. Russo, Yingqi Xiao |
ICFP | 2 |
| 2008 | Join patterns for visual basicabstractWe describe an extension of Visual Basic 9.0 with asynchronous concurrency constructs- join patterns- based on the join calculus. Our design of Concurrent Basic (CB) builds on earlier work on Polyphonic C # and Cω. Since that work, the need for language-integrated concurrency has only grown, both due to the arrival of commodity, multi-core hardware, and the trend for Rich Internet Applications that rely on asynchronous client-server communication to hide latency. Unlike its predecessors, CB adopts an event-like syntax that should be familiar to existing VB programmers. Coupled with Generics, CB allows one to declare re-useable concurrency abstractions that were clumsy to express previously. CB removes its ancestors ’ inconvenient inheritance restriction, while providing new extensibility points useful in practical applications that must co-exist with or want to exploit alternative threading models available on the platform. CB is implemented as an extension of the production VB 9.0 compiler. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language constructs and features—Concurrent programming structures;control structures; classes and objects Claudio V. Russo |
OOPSLA | 1 |
| 2007 | The Joins Concurrency Library
Claudio V. Russo |
PADL | 1 |
| 2006 | Variance and Generalized Constraints for C# Generics
Burak Emir, Andrew Kennedy, Claudio V. Russo, Dachuan Yu |
ECOOP | 3 |
| 2005 | Generalized algebraic data types and object-oriented programmingabstractGeneralized algebraic data types (GADTs) have received much attention recently in the functional programming community. They generalize the (type) parameterized algebraic datatypes (PADTs) of ML and Haskell by permitting value constructors to return specific, rather than parametric, typeinstantiations of their own datatype. GADTs have a number of applications, including strongly-typed evaluators, generic pretty-printing, generic traversals and queries, and typed LR parsing. We show that existing object-oriented programming languages such as Java and C ♯ can express GADT definitions, and a large class of GADT-manipulating programs, through the use of generics, subclassing, and virtual dispatch. However, some programs can be written only through the use of redundant runtime casts. Moreover, instantiationspecific, yet safe, operations on ordinary PADTs only admit indirect cast-free implementations, via higher-order encodings. We propose a generalization of the type constraint mechanisms of C ♯ and Java to both avoid the need for casts in GADT programs and higher-order contortions in PADT programs; we present a Visitor pattern for GADTs, and describe a refined switch construct as an alternative to virtual dispatch on datatypes. We formalize both extensions and prove type soundness. Andrew Kennedy, Claudio V. Russo |
OOPSLA | 2 |
| 2004 | Adventures in interoperability: the SML.NET experienceabstractSML.NET is a compiler for Standard ML that targets the Common Language Runtime and is integrated into the Visual Studio development environment. It supports easy interoperability with other .NET languages via a number of language extensions, which go considerably beyond those of our earlier compiler, MLj.This paper describes the new language extensions and the features of the Visual Studio plugin, including syntax highlighting, Intellisense, continuous type inference and debugger support. We discuss our experiences using SML.NET to write SML programs that interoperate with other .NET languages, libraries and frameworks. Examples include the Visual Studio plugin itself (written in SML.NET, using .NET's COM interop features to integrate in a C++ application) and writing ASP.NET and Pocket PC applications in SML. Nick Benton, Andrew Kennedy, Claudio V. Russo |
PPDP | 3 |
| 2001 | Recursive Structures for Standard MLabstractStandard ML is a statically typed programming language that is suited for the construction of both small and large programs. "Programming in the small" is captured by Standard ML's Core language. "Programming in the large" is captured by Standard ML's Modules language that provides constructs for organizing related Core language definitions into self-contained modules with descriptive interfaces. While the Core is used to express details of algorithms and data structures, Modules is used to express the overall architecture of a software system. In Standard ML, modular programs must have a strictly hierarchical structure: the dependency between modules can never be cyclic. In particular, definitions of mutually recursive Core types and values, that arise frequently in practice, can never span module boundaries. This limitation compromises modular programming, forcing the programmer to merge conceptually (i.e. architecturally) distinct modules. We propose a practical and simple extension of the Modules language that caters for cyclic dependencies between both types and terms defined in separate modules. Our design leverages existing features of the language, supports separate compilation of mutually recursive modules and is easy to implement. Claudio V. Russo |
ICFP | 1 |
| 2000 | First-Class Structures for Standard ML
Claudio V. Russo |
ESOP | 1 |
| 1999 | Non-dependent Types for Standard ML Modules
Claudio V. Russo |
PPDP | 1 |