Demo Data from SIGIR 2026 / reviewers in the wild / expert
Peizhao Ou
dblp:116/6692
· DBLP profile ↗
4ranked-venue papers
3as 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 · 3 · 2 first-authorSystems, architecture and hardware · 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
4 papers |
Concurrent programming · 73% Compilers and program optimization · 13% Software maintenance and evolution · 6% |
Topics — the 9 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
memory models |
0.5 | 2 | 2018 | Towards understanding the costs of avoiding out-of-thin-air results · Proc. ACM Program. Lang. 2018 AutoMO: automatic inference of memory order parameters for C/C++11 · OOPSLA 2015 |
Concurrent programming › memory models › weak memory models
c11 memory model |
0.5 | 2 | 2017 | Checking Concurrent Data Structures Under the C/C++11 Memory Model · PPoPP 2017 AutoMO: automatic inference of memory order parameters for C/C++11 · OOPSLA 2015 |
Concurrent programming
concurrent data structures |
0.4 | 2 | 2017 | Checking Concurrent Data Structures Under the C/C++11 Memory Model · PPoPP 2017 AutoMO: automatic inference of memory order parameters for C/C++11 · OOPSLA 2015 |
Compilers and program optimization
compiler optimization |
0.3 | 1 | 2018 | Towards understanding the costs of avoiding out-of-thin-air results · Proc. ACM Program. Lang. 2018 |
Concurrent programming › atomicity
linearizability |
0.3 | 1 | 2017 | Checking Concurrent Data Structures Under the C/C++11 Memory Model · PPoPP 2017 |
Concurrent programming › memory models
weak memory models |
0.2 | 1 | 2015 | AutoMO: automatic inference of memory order parameters for C/C++11 · OOPSLA 2015 |
Software maintenance and evolution
API usage |
0.1 | 1 | 2012 | Automatic parameter recommendation for practical API usage · ICSE 2012 |
Program synthesis and code generation
code completion |
0.1 | 1 | 2012 | Automatic parameter recommendation for practical API usage · ICSE 2012 |
Programming languages and type systems › language semantics
memory model semantics |
0.1 | 1 | 2018 | Towards understanding the costs of avoiding out-of-thin-air results · Proc. ACM Program. Lang. 2018 |
Methods — techniques the papers use, named apart from their topics
per-candidate execution criterion · 0.3LLVM implementation · 0.3model checking · 0.3exhaustive search · 0.3code mining · 0.1abstract usage instance · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Towards understanding the costs of avoiding out-of-thin-air resultsabstractEliminating so-called “out-of-thin-air” (OOTA) results is an open problem with many existing programming language memory models including Java, C, and C++. OOTA behaviors are problematic in that they break both formal and informal modular reasoning about program behavior. Defining memory model semantics that are easily understood, allow existing optimizations, and forbid OOTA results remains an open problem. This paper explores two simple solutions to this problem that forbid OOTA results. One solution is targeted towards C/C++-like memory models in which racing operations are explicitly labeled as atomic operations and a second solution is targeted towards Java-like languages in which all memory operations may create OOTA executions. Our solutions provide a per-candidate execution criterion that makes it possible to examine a single execution and determine whether the memory model permits the execution. We implemented and evaluated both solutions in the LLVM compiler framework. Our results show that on an ARMv8 processor the first solution has no overhead on average and a maximum overhead of 6.3% on 43 concurrent data structures, and that the second solution has an average overhead of 3.1% and a maximum overhead of 17.6% on the SPEC CPU2006 C/C++ benchmarks. Peizhao Ou, Brian Demsky |
Proc. ACM Program. Lang. | 1 |
| 2017 | Checking Concurrent Data Structures Under the C/C++11 Memory ModelabstractConcurrent data structures often provide better performance on multi-core processors but are significantly more difficult to design and test than their sequential counterparts. The C/C++11 standard introduced a weak memory model with support for low-level atomic operations such as compare and swap (CAS). While low-level atomic operations can significantly improve the performance of concurrent data structures, they introduce non-intuitive behaviors that can increase the difficulty of developing code. Peizhao Ou, Brian Demsky |
PPoPP | 1 |
| 2015 | AutoMO: automatic inference of memory order parameters for C/C++11abstractMany concurrent data structures are initially designed for the sequential consistency (SC) memory model. Developers often implement these data structures on real-world systems with weaker memory models by adding sufficient fences to ensure that their implementation on the weak memory model exhibits the same executions as the SC memory model. Recently, the C11 and C++11 standards have added a weak memory model to the C and C++ languages. Developing and debugging code for weak memory models can be extremely challenging. We present AutoMO, a framework to support porting data structures designed for the SC memory model to the C/C++11 memory model. AutoMO provides support across the porting process: (1) it automatically infers initial settings for the memory order parameters, (2) it detects whether a C/C++11 execution is equivalent to some SC execution, and (3) it simplifies traces to make them easier to understand. We have used AutoMO to successfully infer memory order parameters for a range of data structures and to check whether executions of several concurrent data structure implementations are SC. Peizhao Ou, Brian Demsky |
OOPSLA | 1 |
| 2012 | Automatic parameter recommendation for practical API usageabstractProgrammers extensively use application programming interfaces (APIs) to leverage existing libraries and frameworks. However, correctly and efficiently choosing and using APIs from unfamiliar libraries and frameworks is still a non-trivial task. Programmers often need to ruminate on API documentations (that are often incomplete) or inspect code examples (that are often absent) to learn API usage patterns. Recently, various techniques have been proposed to alleviate this problem by creating API summarizations, mining code examples, or showing common API call sequences. However, few techniques focus on recommending API parameters. In this paper, we propose an automated technique, called Precise, to address this problem. Differing from common code completion systems, Precise mines existing code bases, uses an abstract usage instance representation for each API usage example, and then builds a parameter usage database. Upon a request, Precise queries the database for abstract usage instances in similar contexts and generates parameter candidates by concretizing the instances adaptively. The experimental results show that our technique is more general and applicable than existing code completion systems, specially, 64% of the parameter recommendations are useful and 53% of the recommendations are exactly the same as the actual parameters needed. We have also performed a user study to show our technique is useful in practice. Juyuan Yang, Xin Zhang 0035, Jianjun Zhao 0001, Peizhao Ou |
ICSE | 7 |