News

122 items

I was prompted to a full professor with tenure at Peking University. Thank everyone who helped during the process.
Mining Tactics for Automated Theorem Proving was accepted at ASE 2026. This paper is the first peer-reviewed publication of our new project aiming to optimizing symbolic provers with the intelligence of LLMs. We believe symbolic methods are more suitable to cope with symbolic problems compared to LLMs, but the human intelligence devoted so far is not enough to discover the most suitable symbolic methods, and we use LLMs to continue the devleopment. Through data-driven LLM-based strategy generation, our approach improves CoqHammer by more than 20% with only a small training set.
SemOpt: LLM-Driven Code Optimization via Rule-Based Analysis was accepted at TOSEM 2026. In this paper, we use an LLM to mine optimization strategies from history commits and formalize them as semgrep rules, and use these rules to find optimization opportunities in software projects and guide an LLM to perform optimization. We successfully optimized popular software projects that have been optimized by human experts for years, and some patches we generated have been accepted by developers.
Reducing Cost of LLM Agents with Trajectory Reduction was accepted at FSE 2026. In this paper, we propose the first general trajectory reduction approach for reducing the cost of LLM agents by removing unnecessary contents in trajectories while retaining the reasoning capability of agents.
Two papers accepted at ICSE 2026. PredicateFix: Repairing Static Analysis Alerts with Bridging Predicates proposes an approach to repairing static analysis alerts, by assisting an LLM with examples retrieved based on the static analysis rules. This approach is already deployed in ZTE and received very positive feedback from developers. HoarePrompt: Structural Reasoning About Program Correctness in Natural Language proposes a new program analysis approach with natural language specifications by using LLM to perform the strongest postcondition computation in natural language, combing the natural language reasoning capability of an LLM and classic methods.
We upgraded our probabilistic fault localization approach, Fault Localization via Efficient Probabilistic Modeling of Program Semantics, with a new general probabilistic inference algorithm and new techniques enhancing the scalability. Being training-free, SmartFL outperforms existing training-free approaches (e.g., SBFL and MBFL) in terms of not only effectiveness but also efficiency, and has the SOTA performance in statement-level fault localization in Defects4J. A SmartFL: Semantics Based Probabilistic Fault Localization describes the udpated SmartFL approach, and an Belief Propagation with Local Structure and Its Applications in Program Analysis describes the new probabilistic inference algorithm.
Grammar-Based Code Representation: Is It a Worthy Pursuit for LLMs? was accepted at ACL as a finding. In this paper, we evaluate whether our grammar-based code representation is still useful in large neural models. We found that though large models seldom make syntax errors, their performance still significantly improves when using grammar-based representation, because grammar-based representation has better correspondance to the semantics of code.
I was selected as an ACM Distinguished Member for my contributions to program repair and synthesis.
I was elected as a member of IFIP WG2.4, the working group on software implementation technology.
We have released a benchmark for algorithm synthesis, ASAC, which consists of problems from Chinese national competitive programming contests. Compared with existing benchmarks, our benchmark is not only more difficult, but also consists of logic formalizations of the problems so that the logic-based synthesis and verification is possible. The ASAC: A Benchmark for Algorithm Synthesis will appear at the demo track of FSE'24 in the next month.
Proving Functional Program Equivalence via Directed Lemma Synthesis was accepted at FM'24. This study originates from the fact that the program synthesized by our algorithm synthesziers are too complex, and cannot be automatically verified by existing verifiers. This paper identifies that the key to the proof is find useful lemmas, and these lemmas can be then synthesized by program synthesizers. Therefore, our algorithm synthesizer can be used to verify its synthesized programs. The resulted system is 21 times faster than CVC4-Ind, the SOTA verifier.
Superfusion: Eliminating Intermediate Data Structures via Inductive Synthesis was accepted at PLDI'24. In this paper, we generalize the previous Decomposition-Based Synthesis for Applying D&C-Like Algorithmic Paradigms approach into Superfusion that optimizes programs by eliminating intermediate data structures, automating the fusion procedure in functional programming. The implemented system, SuFu, not only achieves comparable performance to AutoLifter on D&C-like algorithm synthesis problems, but also significantly outperforms existing approaches on fusion optimization and structural recursive program synthesis problems.
Our The ET Program Repair Tool for Java won the first place in the most participated Java Functional Erros track in the first international competition for Automated Program Repair. ET consists of our two existing approaches: the patch validator Accelerating Patch Validation for Program Repair with Interception-Based Execution Scheduling and the patch generator Tare: Type-Aware Neural Program Repair. ET successfully repaired 6 bugs with no incorrect patch, outperforming the baseline of calling ChatGPT (LLMR) and all other participated tools.
Accelerating Patch Validation for Program Repair with Interception-Based Execution Scheduling was accepted at IEEE Transactions on Software Engineering. This paper explains the techniques we used behind our tool ExpressAPR: Efficient Patch Validation for Java Automated Program Repair Systems for fast patch validation, which is 137.1x faster than plain validation and 8.8X faster than UniAPR, the previous SOTA tool. We hope this tool could facilitate future APR research and tool development.
Cooperating with DeepSeek (a subsidiary of High-Flyer AI), my student Qihao Zhu has leaded the development of the currently best open source base LLM for code, DeepSeek-Coder. Some of the ideas in our existing research, such as presenting the related information together to help model learn language rules, have helped the development of this model. We have published a DeepSeek-Coder: When the Large Language Model Meets Programming - The Rise of Code Intelligence about the training details. Qihao is on job market (expected to graudate at this June) and we look forward to your offer.
Decomposition-Based Synthesis for Applying D&C-Like Algorithmic Paradigms was accepted at TOPLAS. This is the second published paper of our currently focused project on algorithm synthesis, following Synthesizing Efficient Memoization Algorithms, yet actually finished earlier. This paper identifies that multiple algorithm classes, such as D&C, incremental computation, segment trees, etc, have a similar structure, and proposes a new algorithm to synthesize algorithms in this class. The number of problems solved by the synthesis algorithm in our experiment is twice that of existing general synthesis algorithm, and outperforms existing semi-automatic approaches for D&C.
Two papers accepted at the research track and the tool demo track of ASE'23. ExpressAPR: Efficient Patch Validation for Java Automated Program Repair Systems presents our tool for patch validation, which integrates five acceleration techniques for reducing the compilation time and testing time, and is 100x faster than plain validation and 10x faster than UniAPR, the previous SOTA tool. We hope this tool could facilitate future APR research and tool development. OrdinalFix: Fixing Compilation Errors via Shortest-Path CFL Reachability with Attribute Checking is a research paper utilizing a novel CFL-Reachability algorithm to find the minimal fixes for compiler errors.
Synthesizing Efficient Memoization Algorithms was accepted at OOPSLA'23. This is the first published paper of our currently focused project on algorithm synthesis started three years ago. Given a formal specification, algorithm synthesis aims to apply algorithmic paradigms such as D&C and dynamic programming to synthesize efficient programs. This paper focus on synthesizing dynamic programming algorithms. Another paper on synthesizing D&C and similar algorithms has also been drafted and is available on arxiv.
I received the First-Class Award on Science from the Chinese Institute of Electronics as the 1st co-winner for the research achievement "data-driven software testing and repair". This is the only first-class award in science from CIE in the domain of software in recent three years.
Two papers were accepted at ICSE23. Tare: Type-Aware Neural Program Repair describes a new approach which guides neural networks to learn typing rules, and based on which we implemented a program repair approach significantly outperforming existing program repair approaches. Reliability Assurance for Deep Neural Network Architectures Against Numerical Defects is a follow-up work of our Detecting Numerical Bugs in Neural Network Architectures that not only better detects potential bugs in neural achitectures, but also confirms these potential bugs with tests and suggests fixes.
Two papers accepted at IJCAI 2022. Grape: Grammar Preserving Rule Embedding presents an neural embedding technique for grammar rules, similar to Word2Vec for words, and could be used in many downstream applications such as program generation. Different from Word2Vec, our embedding technique takes the definitions of the grammar rules into consideration, embedding both the structure and the content of the rules. Lyra: A Benchmark for Turducken-Style Code Generation presents a new program generation benchmark that requires to generate a program in two programming languages at one time.
The videos of my talk on algorithm synthesis and my tutorial on inductive program synthesis (both in Chinese) are available in the CCF digital library. Please check the invited talks page for the links.
Three papers accepted at ICSE 2022 and AAAI 2022. Fault Localization via Efficient Probabilistic Modeling of Program Semantics is our first attempt to use a probabilistic graphical model to capture program semantics to build fault localization afresh. Preferential Labeling for Unattributed Node Classification in GNNs concerns, when a classification task should be insensitive to variable names (e.g., SAT), how to represent programs in graph neural network. Improving Machine Translation Systems via Isotopic Replacement is a testing and repairing approach for machine translation.
L2S: a Framework for Synthesizing the Most Probable Program under a Specification was accepted at TOSEM. This paper presents L2S framework, which guides program synthesis with probabilities and captures the core underline ideas of many our other papers. This work started as a generalization and extension of our Precise Condition Synthesis for Program Repair at the end of 2016. In 2018 we wrapped up the initial ideas and experiment results as a Learning to Synthesize. Finally, after almost five years' work, after numerous invited talks and keynotes at workshops and conferences about L2S, and after the publications of multiple other papers based on the framework, we finally managed to publish the full L2S framework. The final paper has 44 pages excluding the appendix.
I received the CCF-IEEE CS Young Computer Scientists Award. This award is given to at most 5 young computer scientists in China under the age of 40 each year. Thank nominators and the award committee for the nomination and recognition.
Generalizable Synthesis Through Unification was accepted at OOPSLA'21. In this paper, we borrow the concept of "Occam Learning" from the machine learning community and build the first Occam solver based on the "synthesis through unification" framework whose generalizability is theoretically guaranteed by Occam learning.
I received the second ESEC/FSE Distinguished Reviewer Award from ESEC/FSE 2021. Thanks for the recognition.
Interactive Patch Filtering as Debugging Aid was accepted at ICSME'21. Program repair tools are usually assume to have a high precision to be useful. In this paper we show that, with proper interaction tool support, the program repair tool with a low precision can also be useful. This opens many possibilities for future program repair research, such as increasing the recall without worrying at the risk of lowering precision. This is a follow-up work of our Question Selection for Interactive Program Synthesis paper on interactive repair/synthesis.
I received the NASAC Software Innovation Award for Young Researchers and ESEC/FSE 2020 Distinguished Reviewer Award. Thanks for the recognition from the award committees and the nominators!
I was recognized as a distinguished reviewer by ICSE 2020. Thank all subreviewers who contributed to the reviews. Thank the ICSE organization committee for the recognition.
I have received the early career award from NSFC. This is a Chinese version of the NSF career award in US, but is only given to researchers under the age of 38 and is very competitive. Among all researchers who mainly work in software engineering in China, only Dan Hao and He Jiang have received this award before.
Three papers were accepted at ASE'19. Inferring Program Transformations From Singular Examples via Big Code solves the small-sample learning problem for program transformation inference: with the help of big code, we infer a program transformation from only one example. This technique is useful in many domains such as program repair. History-Guided Configuration Diversification for Compiler Test-Program Generation is a follow-up work of our Learning to Prioritize Test Programs for Compiler Testing paper, using historical information to directly guide the generation of test programs. Combining Spectrum-Based Fault Localization and Statistical Debugging: An Empirical Study is the first empirical study that bridges two main families of fault localization: spectrum-based fault localization and statistical debugging.
Three forward-looking papers on program repair were accepted. Automated Program Repair: A Step towards Software Automation is an invited paper for discussing the future of program repair. A Manual Inspection Of Defects4j Bugs And Its Implications For Automatic Program Repair is an empirical study on possible strategies that could potentially be adopted by program repair techniques. How to Explain a Patch: An Empirical Study of Patch Explanations in Open Source Projects explores how a patch should be communicated to developers by studying how human performs the task.
I have been promoted to Associated Professor (with tenure). Thanks for all people who helped in this process.
Learning to Synthesize was accepted at GI'18. This paper proposes a framework for synthesizing a program that has a high probability in a given context.
Faster Mutation Analysis via Equivalence Modulo States was accepted at ISSTA'17. Many program analysis tasks require to execute many similar versions of a program, including but not limited to mutation testing, generate-and-validate program repair, mutation-based fault localization, and product line testing. Our approach accelerates these analyses by sharing the redundant executions.
We have discovered a mistake in the data presentation of our ICST paper "Empirical Evaluation of Test Coverage for Functional Programs". Unfortuately, it is already too late to update the camera-ready version, so please download the corrected version here. Compared with the published version, Figure 3 and Table II are updated, while all discussions and conclusions are the same.
Recently we started a new project on compiler testing. The An Empirical Comparison of Compiler Testing Techniques presents an empirical comparison of the mainstream compiler testing techniques, where we used a new method to measure test effectiveness to make the comparison possible. The Test Case Prioritization for Compilers: a Text-Vector Based Approach presents a low-cost test prioritization approach that has the potential of accelerating compiler testing, even for the non-regressional cases.
As a member of a big team on software-defined cloud management, I received the the First-Class Award on Scientific and Technological Progress, Ministry of Education, one of the most pretigeous award from Ministry fo Education, China.
Fixing Recurring Crash Bugs via Analyzing Q&A Sites was accepted at ASE'15. Within our knowledge, this is the first paper that leverages Internet resources to fix bugs. Our approach achieved high accuracy in producing correct patches, successfully avoiding the over-fitting problem in automatic bug repair.
Recently I started to work on problems in testing and debugging of general programs, and here are two new papers. The Boosting Bug-Report-Oriented Fault Localization with Segmentation and Stack-Trace Analysis is about the automatic association of bug reports to source files, reporting two new heuristics to improve the accuracy of existing techniques. The Search-Based Inference of Polynomial Metamorphic Relations reports the first approach to automatically inferring metamorphic relations from programs.
Our project proposal on improving the quality of safety-critical software system has been approved. This five year project is supported by the young scientist fund under the national basic research program, and I am the principal investigator. The young scientist fund under the national basic research program is one of the most competitive fund for young scientists in China. Every year only 1~3 projects are granted in the area of computer science. Our project is the first one in the area of software development.
I have joined Peking University faculty as an assistant professor under the "Young talents plan". This is a newly-designed position to match the tenure-track system used in North America.
Generating Range Fixes for Software Configuration was accepted at ICSE'12. This paper proposes a new type of fix, range fix, to handle the inconsistency fixing problem arised from A User Survey of Configuration Challenges in Linux and eCos. An automated algorithm for generating range fix is also given. In the sense of general inconsistency handling, range fixes introduce an interative fixing process to resolving inconsistencies, which is a complement of our existing work on Supporting Automatic Model Inconsistency Fixing.
I have finished my postdoc and left University of Waterloo. Now I temporarily work as an indepent researcher while waiting for a new job offer.
We have conducted an online survey about what challenges are faced by the users of modern configuration tools. The result was published here as a technical report.
I will serve as a PC member of BX 2012. Please consider submitting a papper.
I have moved from the University of Tokyo to University of Waterloo as a postdoc.
We have released a library for helping integrate the Haskell-based synchronizer into Java projects. Please refer to here for more information.
Beanbag 1.0 was released.
Atenea group has released reSynch, a UML synchronization tool developed using Beanbag. Visit here for more information.
Beanbag 0.2.1 has released. Added an output to the sync command and the resync command to show only effective update on the data. Also fixed a bug with incremental synchronization.
Our ATL-based synchronization tool has been named as SyncATL.
We have released a new version of Beanbag. The new version includes a new and easy-to-write Beanbag language, an interactive console and two example programs.
Our on-site synchronization project has been named as Beanbag. This name comes from a Japanese traditional game of the same name where the players tries to keep several beanbag consistent within a short time constraint.
Our paper is accepted by ASE 2007!