Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Mae Milano

dblp:321/0647 · DBLP profile ↗
← Back
14ranked-venue papers
2as first author
9since 2021 · last 2026
0000-0003-3126-7771ORCID · verified

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

Software engineering, systems software and programming languages · 9 · 2 first-author · 6 since 2021Systems, architecture and hardware · 2Databases, data management, data science and information retrieval · 2 · 2 since 2021Security and privacy · 1 · 1 since 2021

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
7 papers
Programming languages and type systems · 72% Compilers and program optimization · 9% Concurrent programming · 8%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Distributed systems · 98% Cloud and datacenter computing · 2%
Databases, data mining, and information retrieval
2 papers
Data stream processing · 72% Transaction processing and concurrency control · 28%

Topics — the 25 heaviest of 31, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems › replication › replicated data types
conflict-free replicated data types
1.122022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Katara: synthesizing CRDTs with verified lifting · Proc. ACM Program. Lang. 2022
Programming languages and type systems › language implementation
foreign function interface
0.912025
Building Bridges: Safe Interactions with Foreign Languages through Omniglot · OSDI 2025
Programming languages and type systems › language semantics
stream semantics
0.912025
Flo: A Semantic Foundation for Progressive Stream Processing · Proc. ACM Program. Lang. 2025
Compilers and program optimization › program transformation
defunctionalization
0.712023
Better Defunctionalization through Lambda Set Specialization · Proc. ACM Program. Lang. 2023
Programming languages and type systems › language implementation
monomorphization
0.712023
Better Defunctionalization through Lambda Set Specialization · Proc. ACM Program. Lang. 2023
Programming languages and type systems › type systems
polymorphism
0.712023
Better Defunctionalization through Lambda Set Specialization · Proc. ACM Program. Lang. 2023
Concurrent programming › concurrency bugs
data races
0.612022
A flexible type system for fearless concurrency · PLDI 2022
Programming languages and type systems
type systems
0.612022
A flexible type system for fearless concurrency · PLDI 2022
Programming languages and type systems › type systems
type systems for concurrency
0.612022
A flexible type system for fearless concurrency · PLDI 2022
Program synthesis and code generation › formal synthesis
verified lifting
0.612022
Katara: synthesizing CRDTs with verified lifting · Proc. ACM Program. Lang. 2022
Distributed systems
consistency models
0.612022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Distributed systems › consistency models
coordination-free consistency
0.612022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Distributed systems
replication
0.612022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Transaction processing and concurrency control › consistency
consistency models
0.312018
MixT: a language for mixing consistency in geodistributed transactions · PLDI 2018
Distributed systems › distributed database
distributed transactions
0.312018
MixT: a language for mixing consistency in geodistributed transactions · PLDI 2018
Distributed systems › fault tolerance
failure recovery
0.312018
Derecho: Fast State Machine Replication for Cloud Services · ACM Trans. Comput. Syst. 2018
Distributed systems
fault tolerance
0.312018
Derecho: Fast State Machine Replication for Cloud Services · ACM Trans. Comput. Syst. 2018
Distributed systems › replication
state machine replication
0.312018
Derecho: Fast State Machine Replication for Cloud Services · ACM Trans. Comput. Syst. 2018
Network management and operations
network verification
0.212015
A Coalgebraic Decision Procedure for NetKAT · POPL 2015
Logic in computer science › algebraic logic › kleene algebra
kleene algebra with tests
0.212015
A Coalgebraic Decision Procedure for NetKAT · POPL 2015
Programming languages and type systems › type systems
type soundness
0.212022
A flexible type system for fearless concurrency · PLDI 2022
Programming languages and type systems
language design
0.212013
Python: the full monty · OOPSLA 2013
Programming languages and type systems
language semantics
0.212013
Python: the full monty · OOPSLA 2013
Programming languages and type systems › language semantics › formal semantics
operational semantics
0.212013
Python: the full monty · OOPSLA 2013
Programming languages and type systems › dynamic languages
python
0.212013
Python: the full monty · OOPSLA 2013

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

type system · 1.7dataflow composition · 1.7query model · 1.1monotonicity reasoning · 1.1inductive invariants · 1.1SMT solving · 1.1compile-time information-flow checking · 1.0type inference · 0.7transaction partitioning · 0.7mechanized proof · 0.7type checker in Gallina and OCaml · 0.6heap domination invariant · 0.6formal proof in coq · 0.6decision procedure · 0.4coalgebra · 0.4non-blocking data-flow · 0.3RDMA · 0.3
YearPublicationVenuePosition
2026 Fully-Automatic Type Inference for Borrows with Lifetimes
abstract
We present a new pure functional language and type system with borrows with lifetimes, and a corresponding fully-automatic type inference procedure. Inference provides users the performance benefits of borrows with lifetimes without requiring user annotation. If the user’s program cannot be typed, inference inserts a handful of reference count operations so that it can be typed. We provide a heap semantics for our borrowing language and prove a soundness theorem, guaranteeing that well-typed programs do not violate memory safety. We implement our memory management strategy as part of the Morphic language stack and compare it to Perceus, a state-of-the-art reference-counting technique based on linear type inference. We find that our system is able to eliminate almost all reference count operations across a range of programs, reducing reference count increments by 75–100% on all benchmarks with reference count increments under the baseline. As a result, we achieve a 1 . 48× geomean speedup overall on all benchmarks.
William Brandon, Benjamin Driscoll, Frank Dai, Jonathan Ragan-Kelley, Mae Milano, Alex Aiken
Proc. ACM Program. Lang.5
2025 Building Bridges: Safe Interactions with Foreign Languages through Omniglot
Leon Schuermann, Jack Toubes, Tyler Potyondy, Pat Pannuto, Mae Milano, Amit Levy 0001
OSDI5
2025 Flo: A Semantic Foundation for Progressive Stream Processing
abstract
Streaming systems are present throughout modern applications, processing continuous data in real-time. Existing streaming languages have a variety of semantic models and guarantees that are often incompatible. Yet all these languages are considered “streaming”–what do they have in common? In this paper, we identify two general yet precise semantic properties: streaming progress and eager execution. Together, they ensure that streaming outputs are deterministic and kept fresh with respect to streaming inputs. We formally define these properties in the context of Flo, a parameterized streaming language that abstracts over dataflow operators and the underlying structure of streams. It leverages a lightweight type system to distinguish bounded streams, which allow operators to block on termination, from unbounded ones. Furthermore, Flo provides constructs for dataflow composition and nested graphs with cycles. To demonstrate the generality of our properties, we show how key ideas from representative streaming and incremental computation systems—Flink, LVars, and DBSP—have semantics that can be modeled in Flo and guarantees that map to our properties.
Shadaj Laddad, Alvin Cheung, Joseph M. Hellerstein, Mae Milano
Proc. ACM Program. Lang.4
2023 Invited Paper: Monotonicity and Opportunistically-Batched Actions in Derecho
Kenneth P. Birman, Sagar Jha, Mae Milano, Lorenzo Rosa, Weijia Song, Edward Tremel
SSS3
2023 Better Defunctionalization through Lambda Set Specialization
abstract
Higher-order functions pose a challenge for both static program analyses and optimizing compilers. To simplify the analysis and compilation of languages with higher-order functions, a rich body of prior work has proposed a variety of defunctionalization techniques, which can eliminate higher-order functions from a program by transforming the program to a semantically-equivalent first-order representation. Several modern languages take this a step further, specializing higher-order functions with respect to the functions on which they operate, and in turn allowing compilers to generate more efficient code. However, existing specializing defunctionalization techniques restrict how function values may be used, forcing implementations to fall back on costly dynamic alternatives. We propose lambda set specialization (LSS), the first specializing defunctionalization technique which imposes no restrictions on how function values may be used. We formulate LSS in terms of a polymorphic type system which tracks the flow of function values through the program, and use this type system to recast specialization of higher-order functions with respect to their arguments as a form of type monomorphization. We show that our type system admits a simple and tractable type inference algorithm, and give a formalization and fully-mechanized proof in the Isabelle/HOL proof assistant showing soundness and completeness of the type inference algorithm with respect to the type system. To show the benefits of LSS, we evaluate its impact on the run time performance of code generated by the MLton compiler for Standard ML, the OCaml compiler, and the new Morphic functional programming language. We find that pre-processing with LSS achieves run time speedups of up to 6.85x under MLton, 3.45x for OCaml, and 78.93x for Morphic.
William Brandon, Benjamin Driscoll, Frank Dai, Wilson Berkow, Mae Milano
Proc. ACM Program. Lang.5
2022 A flexible type system for fearless concurrency
abstract
This paper proposes a new type system for concurrent programs, allowing threads to exchange complex object graphs without risking destructive data races. While this goal is shared by a rich history of past work, existing solutions either rely on strictly enforced heap invariants that prohibit natural programming patterns or demand pervasive annotations even for simple programming tasks. As a result, past systems cannot express intuitively simple code without unnatural rewrites or substantial annotation burdens. Our work avoids these pitfalls through a novel type system that provides sound reasoning about separation in the heap while remaining flexible enough to support a wide range of desirable heap manipulations. This new sweet spot is attained by enforcing a heap domination invariant similarly to prior work, but tempering it by allowing complex exceptions that add little annotation burden. Our results include: (1) code examples showing that common data structure manipulations which are difficult or impossible to express in prior work are natural and direct in our system, (2) a formal proof of correctness demonstrating that well-typed programs cannot encounter destructive data races at run time, and (3) an efficient type checker implemented in Gallina and OCaml.
Mae Milano, Joshua Turcotti, Andrew C. Myers
PLDI1
2022 Katara: synthesizing CRDTs with verified lifting
abstract
Conflict-free replicated data types (CRDTs) are a promising tool for designing scalable, coordination-free distributed systems. However, constructing correct CRDTs is difficult, posing a challenge for even seasoned developers. As a result, CRDT development is still largely the domain of academics, with new designs often awaiting peer review and a manual proof of correctness. In this paper, we present Katara, a program synthesis-based system that takes sequential data type implementations and automatically synthesizes verified CRDT designs from them. Key to this process is a new formal definition of CRDT correctness that combines a reference sequential type with a lightweight ordering constraint that resolves conflicts between non-commutative operations. Our process follows the tradition of work in verified lifting, including an encoding of correctness into SMT logic using synthesized inductive invariants and hand-crafted grammars for the CRDT state and runtime. Katara is able to automatically synthesize CRDTs for a wide variety of scenarios, from reproducing classic CRDTs to synthesizing novel designs based on specifications in existing literature. Crucially, our synthesized CRDTs are fully, automatically verified, eliminating entire classes of common errors and reducing the process of producing a new CRDT from a painstaking paper proof of correctness to a lightweight specification.
Shadaj Laddad, Conor Power, Mae Milano, Alvin Cheung, Joseph M. Hellerstein
Proc. ACM Program. Lang.3
2022 Keep CALM and CRDT On
abstract
Despite decades of research and practical experience, developers have few tools for programming reliable distributed applications without resorting to expensive coordination techniques. Conflict-free replicated datatypes (CRDTs) are a promising line of work that enable coordination-free replication and offer certain eventual consistency guarantees in a relatively simple object-oriented API. Yet CRDT guarantees extend only to data updates; observations of CRDT state are unconstrained and unsafe. We propose an agenda that embraces the simplicity of CRDTs, but provides richer, more uniform guarantees. We extend CRDTs with a query model that reasons about which queries are safe without coordination by applying monotonicity results from the CALM Theorem, and lay out a larger agenda for developing CRDT data stores that let developers safely and efficiently interact with replicated application state.
Shadaj Laddad, Conor Power, Mae Milano, Alvin Cheung, Natacha Crooks, Joseph M. Hellerstein
Proc. VLDB Endow.3
2021 New Directions in Cloud Programming
Alvin Cheung, Natacha Crooks, Joseph M. Hellerstein, Mae Milano
CIDR4
2018 MixT: a language for mixing consistency in geodistributed transactions
abstract
Programming concurrent, distributed systems is hard—especially when these systems mutate shared, persistent state replicated at geographic scale. To enable high availability and scalability, a new class of weakly consistent data stores has become popular. However, some data needs strong consistency. To manipulate both weakly and strongly consistent data in a single transaction, we introduce a new abstraction: mixed-consistency transactions, embodied in a new embedded language, MixT. Programmers explicitly associate consistency models with remote storage sites; each atomic, isolated transaction can access a mixture of data with different consistency models. Compile-time information-flow checking, applied to consistency models, ensures that these models are mixed safely and enables the compiler to automatically partition transactions. New run-time mechanisms ensure that consistency models can also be mixed safely, even when the data used by a transaction resides on separate, mutually unaware stores. Performance measurements show that despite their stronger guarantees, mixed-consistency transactions retain much of the speed of weak consistency, significantly outperforming traditional serializable transactions.
Mae Milano, Andrew C. Myers
PLDI1
2018 Derecho: Fast State Machine Replication for Cloud Services
abstract
Cloud computing services often replicate data and may require ways to coordinate distributed actions. Here we present Derecho, a library for such tasks. The API provides interfaces for structuring applications into patterns of subgroups and shards, supports state machine replication within them, and includes mechanisms that assist in restart after failures. Running over 100Gbps RDMA, Derecho can send millions of events per second in each subgroup or shard and throughput peaks at 16GB/s, substantially outperforming prior solutions. Configured to run purely on TCP, Derecho is still substantially faster than comparable widely used, highly-tuned, standard tools. The key insight is that on modern hardware (including non-RDMA networks), data-intensive protocols should be built from non-blocking data-flow components.
Sagar Jha, Jonathan Behrens, Theo Gkountouvas, Mae Milano, Weijia Song, Edward Tremel, Robbert van Renesse, Sydney Zink, Kenneth P. Birman
ACM Trans. Comput. Syst.4
2017 Building smart memories and high-speed cloud services for the internet of things with derecho
abstract
The coming generation of Internet-of-Things (IoT) applications will process massive amounts of incoming data while supporting data mining and online learning. In cases with demanding real-time requirements, such systems behave as smart memories: a high-bandwidth service that captures sensor input, processes it using machine-learning tools, replicates and stores "interesting" data (discarding uninteresting content), updates knowledge models, and triggers urgently-needed responses.
Sagar Jha, Jonathan Behrens, Theo Gkountouvas, Mae Milano, Weijia Song, Edward Tremel, Sydney Zink, Kenneth P. Birman, Robbert van Renesse
SoCC4
2015 A Coalgebraic Decision Procedure for NetKAT
abstract
NetKAT is a domain-specific language and logic for specifying and verifying network packet-processing functions. It consists of Kleene algebra with tests (KAT) augmented with primitives for testing and modifying packet headers and encoding network topologies. Previous work developed the design of the language and its standard semantics, proved the soundness and completeness of the logic, defined a PSPACE algorithm for deciding equivalence, and presented several practical applications.
Nate Foster, Dexter Kozen, Mae Milano, Alexandra Silva 0001, Laure Thompson
POPL3
2013 Python: the full monty
abstract
We present a small-step operational semantics for the Python programming language. We present both a core language for Python, suitable for tools and proofs, and a translation process for converting Python source to this core. We have tested the composition of translation and evaluation of the core for conformance with the primary Python implementation, thereby giving confidence in the fidelity of the semantics. We briefly report on the engineering of these components. Finally, we examine subtle aspects of the language, identifying scope as a pervasive concern that even impacts features that might be considered orthogonal.
Joe Gibbs Politz, Alejandro Martinez, Mae Milano, Sumner Warren, Daniel Patterson 0001, Junsong Li, Anand Chitipothu, Shriram Krishnamurthi
OOPSLA3