EDBT 2026 Demo / reviewers in the wild / expert
Michael Y. Levin
dblp:17/6092
· DBLP profile ↗
10ranked-venue papers
2as first author
0since 2021 · last 2020
0009-0007-4246-2341ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 2 first-authorSecurity and privacy · 1Databases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 1
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.
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Cloud and datacenter computing · 67% Parallel and multicore computing · 33% | |
| Software engineering, system software, and programming languages
3 papers |
Software testing · 86% Program analysis · 14% | |
| Databases, data mining, and information retrieval
1 paper |
Data stream processing · 100% | |
| Network and information security
2 papers |
Systems and software security · 100% |
Topics — the 11 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Cloud and datacenter computing
autoscaling |
0.4 | 1 | 2020 | Turbine: Facebook's Service Management Platform for Stream Processing · ICDE 2020 |
Cloud and datacenter computing
cluster resource management and scheduling |
0.4 | 1 | 2020 | Turbine: Facebook's Service Management Platform for Stream Processing · ICDE 2020 |
Parallel and multicore computing
task scheduling |
0.4 | 1 | 2020 | Turbine: Facebook's Service Management Platform for Stream Processing · ICDE 2020 |
Software testing › test generation
dynamic test generation |
0.2 | 2 | 2009 | Precise pointer reasoning for dynamic test generation · ISSTA 2009 Grammar-based whitebox fuzzing · PLDI 2008 |
Software testing › fuzzing
whitebox fuzzing |
0.2 | 2 | 2008 | Grammar-based whitebox fuzzing · PLDI 2008 Automated Whitebox Fuzz Testing · NDSS 2008 |
Data stream processing
stream processing systems |
0.1 | 1 | 2020 | Turbine: Facebook's Service Management Platform for Stream Processing · ICDE 2020 |
Systems and software security
vulnerability discovery |
0.1 | 2 | 2009 | Precise pointer reasoning for dynamic test generation · ISSTA 2009 Automated Whitebox Fuzz Testing · NDSS 2008 |
Program analysis › symbolic execution
dynamic symbolic execution |
0.1 | 1 | 2009 | Precise pointer reasoning for dynamic test generation · ISSTA 2009 |
Software testing
fuzzing |
0.1 | 1 | 2008 | Automated Whitebox Fuzz Testing · NDSS 2008 |
Software testing › test generation
grammar-based test generation |
0.1 | 1 | 2008 | Grammar-based whitebox fuzzing · PLDI 2008 |
Software testing
test generation |
0.1 | 1 | 2008 | Grammar-based whitebox fuzzing · PLDI 2008 |
Methods — techniques the papers use, named apart from their topics
predictive auto scaling · 0.9fault tolerance · 0.9symbolic execution · 0.3constraint solving · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Turbine: Facebook's Service Management Platform for Stream ProcessingabstractThe demand for stream processing at Facebook has grown as services increasingly rely on real-time signals to speed up decisions and actions. Emerging real-time applications require strict Service Level Objectives (SLOs) with low downtime and processing lag-even in the presence of failures and load variability. Addressing this challenge at Facebook scale led to the development of Turbine, a management platform designed to bridge the gap between the capabilities of the existing general-purpose cluster management frameworks and Facebook's stream processing requirements. Specifically, Turbine features a fast and scalable task scheduler; an efficient predictive auto scaler; and an application update mechanism that provides fault-tolerance, atomicity, consistency, isolation and durability. Turbine has been in production for over three years, and one of the core technologies that enabled a booming growth of stream processing at Facebook. It is currently deployed on clusters spanning tens of thousands of machines, managing several thousands of streaming pipelines processing terabytes of data per second in real time. Our production experience has validated Turbine's effectiveness: its task scheduler evenly balances workload fluctuation across clusters; its auto scaler effectively and predictively handles unplanned load spikes; and the application update mechanism consistently and efficiently completes high scale updates within minutes. This paper describes the Turbine architecture, discusses the design choices behind it, and shares several case studies demonstrating Turbine capabilities in production. Luwei Cheng, Vanish Talwar, Michael Y. Levin, Gabriela Jacques-Silva, Nikhil Simha, Anirban Banerjee, Tim Williamson, Serhat Yilmaz, Guoqiang Jerry Chen |
ICDE | 4 |
| 2009 | Precise pointer reasoning for dynamic test generationabstractDynamic test generation consists of executing a program while gathering symbolic constraints on inputs from predicates encountered in branch statements, and of using a constraint solver to infer new program inputs from previous constraints in order to steer next executions towards new program paths. Variants of this technique have recently been adopted in several bug detection tools, including our whitebox fuzzer SAGE, which has found dozens of new expensive security-related bugs in many Windows applications and is now routinely used in various Microsoft groups. Bassem Elkarablieh, Patrice Godefroid, Michael Y. Levin |
ISSTA | 3 |
| 2008 | Active property checkingabstractRuntime property checking (as implemented in tools like Purify or Valgrind) checks whether a program execution satisfies a property. Active property checking extends runtime checking by checking whether the property is satisfied by all program executions that follow the same program path. This check is performed on a symbolic execution of the given program path using a constraint solver. If the check fails, the constraint solver generates an alternative program input triggering a new program execution that follows the same program path but exhibits a property violation. Combined with systematic dynamic test generation, which attempts to exercise all feasible paths in a program, active property checking defines a new form of dynamic software model checking (program verification). In this paper, we formalize and study active property checking. We show how static and dynamic type checking can be extended with active type checking. Then, we discuss how to implement active property checking efficiently. Finally, we discuss results of experiments with media playing applications on Windows, where active property checking was able to detect several new security-related bugs. Patrice Godefroid, Michael Y. Levin, David A. Molnar |
EMSOFT | 2 |
| 2008 | Automated Whitebox Fuzz Testing
Patrice Godefroid, Michael Y. Levin, David A. Molnar |
NDSS | 2 |
| 2008 | Grammar-based whitebox fuzzingabstractWhitebox fuzzing is a form of automatic dynamic test generation, based on symbolic execution and constraint solving, designed for security testing of large applications. Unfortunately, the current effectiveness of whitebox fuzzing is limited when testing applications with highly-structured inputs, such as compilers and interpreters. These applications process their inputs in stages, such as lexing, parsing and evaluation. Due to the enormous number of control paths in early processing stages, whitebox fuzzing rarely reaches parts of the application beyond those first stages. Patrice Godefroid, Adam Kiezun, Michael Y. Levin |
PLDI | 3 |
| 2005 | XML Goes Native: Run-Time Representations for Xtatic
Vladimir Gapeyev, Michael Y. Levin, Benjamin C. Pierce, Alan Schmitt |
CC | 2 |
| 2003 | Compiling regular patternsabstractPattern matching mechanisms based on regular expressions feature in a number of recent languages for processing tree-structured data such as XML. A compiler for such a language must address not only the familiar problems of pattern optimization for ML-style algebraic datatypes and pattern matching, but also some new ones, arising principally from the use of recursion in patterns. We identify several factors playing a significant role in the quality of the generated code, propose two pattern compilers---one generating backtracking target programs, the other non-backtracking---and sketch proofs of their correctness. Michael Y. Levin |
ICFP | 1 |
| 2003 | TinkerType: a language for playing with formal systemsabstractTinkerType is a pragmatic framework for compact and modular description of formal systems (type systems, operational semantics, logics, etc.). A family of related systems is broken down into a set of clauses – individual inference rules – and a set of features controlling the inclusion of clauses in particular systems. Simple static checks are used to help maintain consistency of the generated systems. We present TinkerType and its implementation and describe its application to two substantial repositories of typed lambda-calculi. The first repository covers a broad range of typing features, including subtyping, polymorphism, type operators and kinding, computational effects, and dependent types. It describes both declarative and algorithmic aspects of the systems, and can be used with our tool, the TinkerType Assembler , to generate calculi either in the form of typeset collections of inference rules or as executable ML typecheckers. The second repository addresses a smaller collection of systems, and provides modularized proofs of basic safety properties. Michael Y. Levin, Benjamin C. Pierce |
J. Funct. Program. | 1 |
| 2002 | Recursive subtyping revealedabstractAlgorithms for checking subtyping between recursive types lie at the core of many programming language implementations. But the fundamental theory of these algorithms and how they relate to simpler declarative specifications is not widely understood, due in part to the difficulty of the available introductions to the area. This tutorial paper offers an ‘end-to-end’ introduction to recursive types and subtyping algorithms, from basic theory to efficient implementation, set in the unifying mathematical framework of coinduction. Vladimir Gapeyev, Michael Y. Levin, Benjamin C. Pierce |
J. Funct. Program. | 2 |
| 2000 | Recursive subtyping revealed: functional pearlabstractAlgorithms for checking subtyping between recursive types lie at the core of many programming language implementations. But the fundamental theory of these algorithms and how they relate to simpler declarative specifications is not widely understood, due in part to the difficulty of the available introductions to the area. This tutorial paper offers an "end-to-end" introduction to recursive types and subtyping algorithms, from basic theory to efficient implementation, set in the unifying mathematical framework of coinduction. Vladimir Gapeyev, Michael Y. Levin, Benjamin C. Pierce |
ICFP | 2 |