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

Haichi Wang

dblp:282/6342 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
1since 2021 · last 2025
0009-0007-6953-8369ORCID · corroborated

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

Software engineering, systems software and programming languages · 3 · 2 first-author · 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
1 paper
Concurrent programming · 50% Compilers and program optimization · 25% Program analysis · 25%

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

TopicWeightPapersLastEvidence papers
Compilers and program optimization
code generation
0.412020
Towards Generating Thread-Safe Classes Automatically · ASE 2020
Program analysis › concurrent program analysis
lock inference
0.412020
Towards Generating Thread-Safe Classes Automatically · ASE 2020
Concurrent programming
synchronization
0.412020
Towards Generating Thread-Safe Classes Automatically · ASE 2020
Concurrent programming › concurrency correctness
thread safety
0.412020
Towards Generating Thread-Safe Classes Automatically · ASE 2020

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

locking policy synthesis · 0.4access annotation inference · 0.4
YearPublicationVenuePosition
2025 An empirical study of test case prioritization on the Linux Kernel
Haichi Wang, Dong Wang 0044, Yiheng Du, Yingquan Zhao, Junjie Chen 0003
Autom. Softw. Eng.1
2020 IFIX: Fixing Concurrency Bugs While They Are Introduced
abstract
Concurrency bugs are notoriously hard to identify and fix. A systematic way of avoiding concurrency bugs is to design and implement a locking policy that consistently guards all shared variables. Concurrency bugs thus can be viewed as the result of an illy-designed or poorly implemented locking policy. The trouble is that the locking policy is often not documented, which makes debugging concurrency bugs clueless. We argue that it is too late to debug concurrency bugs after programming is done and we instead detect and fix them while they are being implemented. In this work, we propose an approach named IFIX which flags potential concurrency bugs and recommends fixes while the bugs are introduced. The key idea is to automatically conjecture what the intended locking policy is based on static analysis and recommend fixes accordingly. The recommended fixes are present to the programmer promptly and the user feedback (i.e., whether the certain recommendation is selected) is used to refine the conjectured locking policy and consequently future fixes. IFIX is evaluated on 43 concurrent programs, and through a user study with 30 programmers. The experiment results and user feedback show that IFIX is efficient, accurate and user-friendly.
Haichi Wang, Shuang Liu 0007, Jun Sun 0001, Haoyu Wang 0017, Junjie Chen 0003
ICECCS2
2020 Towards Generating Thread-Safe Classes Automatically
abstract
The existing concurrency model for Java (or C) requires programmers to design and implement thread-safe classes by explicitly acquiring locks and releasing locks. Such a model is error-prone and is the reason for many concurrency bugs. While there are alternative models like transactional memory, manually writing locks remains prevalent in practice. In this work, we propose AutoLock, which aims to solve the problem by fully automatically generating thread-safe classes. Given a class which is assumed to be correct with sequential clients, AutoLock automatically generates a thread-safe class which is linearizable, and does it in a way without requiring a specification of the class. AutoLock takes three steps: (1) infer access annotations (i.e., abstract information on how variables are accessed and aliased), (2) synthesize a locking policy based on the access annotations, and (3) consistently implement the locking policy. AutoLock has been evaluated on a set of benchmark programs and the results show that AutoLock generates thread-safe classes effectively and could have prevented existing concurrency bugs.
Haichi Wang, Jun Sun 0001, Shuang Liu 0007, Ayesha Sadiq, Yuan-Fang Li
ASE1