April 21, 2022
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.
January 7, 2022
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.
October 11, 2021L2S: 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 ACS approach at the end of 2016. In 2018 we wrapped up the initial ideas and experiment results as a workshop paper. 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.
September 30, 2021
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.
August 31, 2021Generalizable 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.
August 6, 2021
I received the second ESEC/FSE Distinguished Reviewer Award from ESEC/FSE 2021. Thanks for the recognition.
June 15, 2021Interactive 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 PLDI'20 paper on interactive repair/synthesis.
December 1, 2020
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!
March 31, 2020Question Selection for Interactive Program Synthesis was accepted at PLDI'20. Unlike most existing research studies how computers answer questions from pepople, this paper studies how computers ask questions to people for program synthesis. This is the second paper in our new project on interactive program synthesis/repair, following the ISSRE'19 paper.
August 16, 2019
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.
May 10, 2017Faster 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.
December 13, 2016Precise Condition Synthesis for Program Repair was accepted at ICSE'17. Following our previous attempt in our ASE'15 paper to increase the precision of defect repair (less incorrect patches), in this paper we try to generate precise patches for a more general category of defects: incorrect conditions.
April 2, 2016 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.
December 21, 2015 Recently we started a new project on compiler testing. The ICSE'16 paper 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 ICST'16 paper presents a low-cost test prioritization approach that has the potential of accelerating compiler testing, even for the non-regressional cases.
December 1, 2015 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.
July 19, 2015Fixing 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.
July 2, 2014 Recently I started to work on problems in testing and debugging of general programs, and here are two new papers. The ICSME'14 paper is about the automatic association of bug reports to source files, reporting two new heuristics to improve the accuracy of existing techniques. The ASE'14 paper reports the first approach to automatically inferring metamorphic relations from programs.
August 1, 2013 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.
May 30, 2013 Our paper about priority-based fixing was accepted at SPLC 2013. This work enhances our ICSE'12 work about range fix, reducing the number of options presented to the user by inferring implicit priorities from user interactions.
April 12, 2013 Our empirical study on web API evolution was accepted at ICWS 2013. This is the first step of our new project on web API evolution, which, hopefully, will eventually make it easier to migrate clients for API update.
April 18, 2012 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.
January 27, 2012Generating 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 our survey. 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 fully automatic fixing.
April 30, 2009 Atenea group has released reSynch, a UML synchronization tool developed using Beanbag. Visit here for more information.
March 16, 2009 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.
December 12, 2008 We have published a technical report about the Beanbag language.
November 11, 2008 Our ATL-based synchronization tool has been named as SyncATL.
September 30, 2008 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.
September 5, 2008 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.
October 10, 2007 Our paper is accepted by ASE 2007!