VLDB 2026 Research / reviewers in the wild / expert
Ming Kawaguchi
dblp:92/2185
· DBLP profile ↗
10ranked-venue papers
3as first author
1since 2021 · last 2023
0000-0001-5999-2882ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 3 first-author · 1 since 2021Theory of computation · 4 · 1 first-authorArtificial intelligence and machine learning · 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.
| Software engineering, system software, and programming languages
8 papers |
Programming languages and type systems · 34% Program verification · 24% Operating systems · 21% |
Topics — the 16 heaviest of 17, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › type systems
refinement types |
0.5 | 5 | 2012 | Deterministic parallelism via liquid effects · PLDI 2012 Low-level liquid types · POPL 2010 Dsolve: Safety Verification via Liquid Types · CAV 2010 |
Programming languages and type systems › type systems › refinement types
liquid types |
0.4 | 4 | 2012 | CSolve: Verifying C with Liquid Types · CAV 2012 Low-level liquid types · POPL 2010 Dsolve: Safety Verification via Liquid Types · CAV 2010 |
Program verification
type-based verification |
0.3 | 2 | 2012 | CSolve: Verifying C with Liquid Types · CAV 2012 Dsolve: Safety Verification via Liquid Types · CAV 2010 |
Compilers and program optimization › code generation
assembly code generation |
0.2 | 1 | 2023 | Towards Porting Operating Systems with Program Synthesis · ACM Trans. Program. Lang. Syst. 2023 |
Concurrent programming › deterministic execution
deterministic parallelism |
0.1 | 1 | 2012 | Deterministic parallelism via liquid effects · PLDI 2012 |
Debugging and program repair
fault localization |
0.1 | 1 | 2012 | SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs · CAV 2012 |
Program verification › equivalence checking
program equivalence checking |
0.1 | 1 | 2012 | SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs · CAV 2012 |
Program analysis › differential program analysis
semantic difference detection |
0.1 | 1 | 2012 | SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs · CAV 2012 |
Programming languages and type systems › computational effects
type and effect systems |
0.1 | 1 | 2012 | Deterministic parallelism via liquid effects · PLDI 2012 |
Program verification
code-level verification |
0.1 | 1 | 2010 | Low-level liquid types · POPL 2010 |
Program verification
data structure verification |
0.1 | 1 | 2009 | Type-based data structure verification · PLDI 2009 |
Program verification
static verification |
0.1 | 1 | 2008 | Liquid types · PLDI 2008 |
Programming languages and type systems
type inference |
0.1 | 1 | 2008 | Liquid types · PLDI 2008 |
Program verification › type-based verification
refinement type inference |
0.0 | 1 | 2012 | Deterministic parallelism via liquid effects · PLDI 2012 |
Program analysis › static analysis
abstract interpretation |
0.0 | 1 | 2010 | Low-level liquid types · POPL 2010 |
Program verification
safety verification |
0.0 | 1 | 2010 | Dsolve: Safety Verification via Liquid Types · CAV 2010 |
Methods — techniques the papers use, named apart from their topics
symbolic execution · 0.7program specialization · 0.7domain-specific language · 0.7SMT solving · 0.5refinement type inference · 0.3liquid types · 0.3semantic diffing · 0.1strong updates · 0.1liquid type inference · 0.1hindley-milner type inference · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Towards Porting Operating Systems with Program SynthesisabstractThe end of Moore’s Law has ushered in a diversity of hardware not seen in decades. Operating system (OS) (and system software) portability is accordingly becoming increasingly critical. Simultaneously, there has been tremendous progress in program synthesis. We set out to explore the feasibility of using modern program synthesis to generate the machine-dependent parts of an operating system. Our ultimate goal is to generate new ports automatically from descriptions of new machines. One of the issues involved is writing specifications, both for machine-dependent operating system functionality and for instruction set architectures. We designed two domain-specific languages: Alewife for machine-independent specifications of machine-dependent operating system functionality and Cassiopea for describing instruction set architecture semantics. Automated porting also requires an implementation. We developed a toolchain that, given an Alewife specification and a Cassiopea machine description, specializes the machine-independent specification to the target instruction set architecture and synthesizes an implementation in assembly language with a customized symbolic execution engine. Using this approach, we demonstrate the successful synthesis of a total of 140 OS components from two pre-existing OSes for four real hardware platforms. We also developed several optimization methods for OS-related assembly synthesis to improve scalability. The effectiveness of our languages and ability to synthesize code for all 140 specifications is evidence of the feasibility of program synthesis for machine-dependent OS code. However, many research challenges remain; we also discuss the benefits and limitations of our synthesis-based approach to automated OS porting. Jingmei Hu, Eric Lu, David A. Holland, Ming Kawaguchi, Stephen Chong, Margo I. Seltzer |
ACM Trans. Program. Lang. Syst. | 4 |
| 2019 | Trials and Tribulations in Synthesizing Operating SystemsabstractRecent advances in program synthesis convinced us that it was the right time to transform the process of porting an operating system into a program synthesis problem. We set out to synthesize the needed machine dependent code for an existing operating system. This undertaking proved far more challenging than we anticipated. We summarize our experience and lessons learned and propose next steps in realizing such an undertaking. Jingmei Hu, Eric Lu, David A. Holland, Ming Kawaguchi, Stephen Chong, Margo I. Seltzer |
PLOS@SOSP | 4 |
| 2013 | Towards Modularly Comparing Programs Using Automated Theorem Provers
Chris Hawblitzel, Ming Kawaguchi, Shuvendu K. Lahiri, Henrique Rebêlo |
CADE | 2 |
| 2012 | SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs
Shuvendu K. Lahiri, Chris Hawblitzel, Ming Kawaguchi, Henrique Rebêlo |
CAV | 3 |
| 2012 | CSolve: Verifying C with Liquid Types
Patrick Maxim Rondon, Alexander Bakst, Ming Kawaguchi, Ranjit Jhala |
CAV | 3 |
| 2012 | Deterministic parallelism via liquid effectsabstractShared memory multithreading is a popular approach to parallel programming, but also fiendishly hard to get right. We present Liquid Effects, a type-and-effect system based on refinement types which allows for fine-grained, low-level, shared memory multi-threading while statically guaranteeing that a program is deterministic. Liquid Effects records the effect of an expression as a for- mula in first-order logic, making our type-and-effect system highly expressive. Further, effects like Read and Write are recorded in Liquid Effects as ordinary uninterpreted predicates, leaving the effect system open to extension by the user. By building our system as an extension to an existing dependent refinement type system, our system gains precise value- and branch-sensitive reasoning about effects. Finally, our system exploits the Liquid Types refinement type inference technique to automatically infer refinement types and effects. We have implemented our type-and-effect checking techniques in CSOLVE, a refinement type inference system for C programs. We demonstrate how CSOLVE uses Liquid Effects to prove the determinism of a variety of benchmarks. Ming Kawaguchi, Patrick Maxim Rondon, Alexander Bakst, Ranjit Jhala |
PLDI | 1 |
| 2010 | Dsolve: Safety Verification via Liquid Types
Ming Kawaguchi, Patrick Maxim Rondon, Ranjit Jhala |
CAV | 1 |
| 2010 | Low-level liquid typesabstractWe present Low-Level Liquid Types , a refinement type system for C based on Liquid Types . Low-Level Liquid Types combine refinement types with three key elements to automate verification of critical safety properties of low-level programs: First, by associating refinement types with individual heap locations and precisely tracking the locations referenced by pointers, our system is able to reason about complex invariants of in-memory data structures and sophisticated uses of pointer arithmetic. Second, by adding constructs which allow strong updates to the types of heap locations, even in the presence of aliasing, our system is able to verify properties of in-memory data structures in spite of temporary invariant violations. By using this strong update mechanism, our system is able to verify the correct initialization of newly-allocated regions of memory. Third, by using the abstract interpretation framework of Liquid Types, we are able to use refinement type inference to automatically verify important safety properties without imposing an onerous annotation burden. We have implemented our approach in CSOLVE, a tool for Low-Level Liquid Type inference for C programs. We demonstrate through several examples that CSOLVE is able to precisely infer complex invariants required to verify important safety properties, like the absence of array bounds violations and null-dereferences, with a minimal annotation overhead. Patrick Maxim Rondon, Ming Kawaguchi, Ranjit Jhala |
POPL | 2 |
| 2009 | Type-based data structure verificationabstractWe present a refinement type-based approach for the static verification of complex data structure invariants. Our approach is based on the observation that complex data structures are typically fashioned from two elements: recursion (e.g., lists and trees), and maps (e.g., arrays and hash tables). We introduce two novel type-based mechanisms targeted towards these elements: recursive refinements and polymorphic refinements. These mechanisms automate the challenging work of generalizing and instantiating rich universal invariants by piggybacking simple refinement predicates on top of types, and carefully dividing the labor of analysis between the type system and an SMT solver. Further, the mechanisms permit the use of the abstract interpretation framework of liquid type inference to automatically synthesize complex invariants from simple logical qualifiers, thereby almost completely automating the verification. We have implemented our approach in dsolve, which uses liquid types to verify ocaml programs. We present experiments that show that our type-based approach reduces the manual annotation required to verify complex properties like sortedness, balancedness, binary-search-ordering, and acyclicity by more than an order of magnitude. Ming Kawaguchi, Patrick Maxim Rondon, Ranjit Jhala |
PLDI | 1 |
| 2008 | Liquid typesabstractWe present Logically Qualified Data Types, abbreviated to Liquid Types, a system that combines Hindley-Milner type inference with Predicate Abstraction to automatically infer dependent types precise enough to prove a variety of safety properties. Liquid types allow programmers to reap many of the benefits of dependent types, namely static verification of critical properties and the elimination of expensive run-time checks, without the heavy price of manual annotation. We have implemented liquid type inference in DSOLVE, which takes as input an OCAML program and a set of logical qualifiers and infers dependent types for the expressions in the OCAML program. To demonstrate the utility of our approach, we describe experiments using DSOLVE to statically verify the safety of array accesses on a set of OCAML benchmarks that were previously annotated with dependent types as part of the DML project. We show that when used in conjunction with a fixed set of array bounds checking qualifiers, DSOLVE reduces the amount of manual annotation required for proving safety from 31% of program text to under 1%. Patrick Maxim Rondon, Ming Kawaguchi, Ranjit Jhala |
PLDI | 2 |